任何代码/库按比例缩小的UIImage的?(Any code/library to scale do

2019-08-18 12:00发布

是否有任何代码或库在那里,可以帮我缩小的图像? 如果你拍摄照片与iPhone,它有点像2000x1000像素这是不是很友好的网络。 我想它的规模往下说了分辨率480x320。 任何提示?

Answer 1:

这是我在用。 效果很好。 我一定会密切关注这个问题,看看是否有人有什么更好/更快。 我只是说下面就一个类别UIimage

+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize {
  UIGraphicsBeginImageContext( newSize );
  [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
  UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  return newImage;
}


Answer 2:

见http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/ -这有一组代码,你可以下载,以及一些描述。

如果速度是一个担心,你可以使用CGContextSetInterpolationQuality设置比默认值更低的插值质量试验。



Answer 3:

请注意,这不是我的代码。 我做了一个小挖,发现它这里 。 我想你不得不落入CoreGraphics在层,但不太清楚具体的。 这应该工作。 只是要小心管理你的记忆。

//  ==============================================================
//  resizedImage
//  ==============================================================
// Return a scaled down copy of the image.  

UIImage* resizedImage(UIImage *inImage, CGRect thumbRect)
{
    CGImageRef          imageRef = [inImage CGImage];
    CGImageAlphaInfo    alphaInfo = CGImageGetAlphaInfo(imageRef);

    // There's a wierdness with kCGImageAlphaNone and CGBitmapContextCreate
    // see Supported Pixel Formats in the Quartz 2D Programming Guide
    // Creating a Bitmap Graphics Context section
    // only RGB 8 bit images with alpha of kCGImageAlphaNoneSkipFirst, kCGImageAlphaNoneSkipLast, kCGImageAlphaPremultipliedFirst,
    // and kCGImageAlphaPremultipliedLast, with a few other oddball image kinds are supported
    // The images on input here are likely to be png or jpeg files
    if (alphaInfo == kCGImageAlphaNone)
        alphaInfo = kCGImageAlphaNoneSkipLast;

    // Build a bitmap context that's the size of the thumbRect
    CGContextRef bitmap = CGBitmapContextCreate(
                NULL,
                thumbRect.size.width,       // width
                thumbRect.size.height,      // height
                CGImageGetBitsPerComponent(imageRef),   // really needs to always be 8
                4 * thumbRect.size.width,   // rowbytes
                CGImageGetColorSpace(imageRef),
                alphaInfo
        );

    // Draw into the context, this scales the image
    CGContextDrawImage(bitmap, thumbRect, imageRef);

    // Get an image from the context and a UIImage
    CGImageRef  ref = CGBitmapContextCreateImage(bitmap);
    UIImage*    result = [UIImage imageWithCGImage:ref];

    CGContextRelease(bitmap);   // ok if NULL
    CGImageRelease(ref);

    return result;
}


Answer 4:

请参阅我张贴的解决这个问题 。 这个问题涉及旋转图像90度,而不是缩放来的,但前提是相同的(这只是矩阵变换是不同的)。



文章来源: Any code/library to scale down an UIImage?