使用宽高比调整图像大小

时间:2011-06-27 21:23:13

标签: iphone image cgbitmapcontextcreate

我尝试使用宽高比调整图像大小,例如在以下链接中完成

Resizing UIimages pulled from the Camera also ROTATES the UIimage?

https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more

这在模拟器上运行良好。但是在我的iPhone-4上,我在图片的右侧出现了黑色块。 (图片中的第4张是黑色的)。它只发生在目前为止具有imageOrientation权限的图片中。 ImageOrientation up不会产生任何问题。

不知怎的,我感觉CGBitmapContextCreate正在解决这个问题。我已经删除了CGImageGetBytesPerRow,因为这不像我读过的那样有效。目前我有以下代码:

if (sourceImage.imageOrientation == UIImageOrientationUp || sourceImage.imageOrientation == UIImageOrientationDown) {
bitmap = CGBitmapContextCreate(NULL, targetWidth, targetHeight, 8, 4*targetWidth, colorSpaceInfo, bitmapInfo);
} else {
bitmap = CGBitmapContextCreate(NULL, targetHeight, targetWidth, 8, 4*targetHeight, colorSpaceInfo, bitmapInfo);
}

这些问题会出现什么情况?

1 个答案:

答案 0 :(得分:2)

我会使用此网站上的类别文件来调整UIImages的大小:

http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/