SORU
26 Mayıs 2011, PERŞEMBE


Nasıl bir Uİİmage küçültün ve gevrek / keskin yapmak için bulanık yerine aynı anda?

Bir görüntü, ama keskin bir şekilde küçültün ihtiyacım var. Örneğin Photoshop resim küçültme seçenekler "Yumuşak" (bulanık) ve "Keskin". çift küplü çift küplü var

Bu görüntü ölçek küçültme algoritması açık kaynaklı veya belgelenmiş bir yere veya SDK yöntemleri bunu yapmak için teklif ediyor?

CEVAP
15 EKİM 2011, CUMARTESİ


Sadece imageWithCGImage yeterli kullanarak. Ölçek, ama sonuç yukarı veya aşağı Ölçekleme olsun bulanık ve yetersiz olacaktır.

Eğer yumuşatma sağ olsun ve "" bir şeye ihtiyacın var böyle: http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/. jaggies kurtulmak istiyorsanız

Çalışma test kodumu benim şeffaf PNG ile çalışmak için küçük bir ayarlama ile Trevor'un çözümü olan bu gibi bir şey görünüyor:

- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize {
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
    CGImageRef imageRef = image.CGImage;

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
    CGContextRef context = UIGraphicsGetCurrentContext();

    // Set the quality level to use when rescaling
    CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
    CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height);

    CGContextConcatCTM(context, flipVertical);  
    // Draw into the context; this scales the image
    CGContextDrawImage(context, newRect, imageRef);

    // Get the resized image from the context and a UIImage
    CGImageRef newImageRef = CGBitmapContextCreateImage(context);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];

    CGImageRelease(newImageRef);
    UIGraphicsEndImageContext();    

    return newImage;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006