我在UIScrollView内使用UIImageView让用户捏和缩放图像。我现在想要获取用户修改后的图像(小图或放大图)。我怎样才能做到这一点?从UIImageView获取缩放图像
谢谢。
好吧,我正在尝试新的东西。我可以从中间的某个图像获取缩略图吗? 我可以从(0,0)中获得固定大小的缩略图。我可以从说(10,20)或(30,30)中得到吗?再次感谢。 我尝试使用CGImageCreateWithImageInRect与矩形这些值为x和y。但它给了我一个点0,0的图像
我在UIScrollView内使用UIImageView让用户捏和缩放图像。我现在想要获取用户修改后的图像(小图或放大图)。我怎样才能做到这一点?从UIImageView获取缩放图像
谢谢。
好吧,我正在尝试新的东西。我可以从中间的某个图像获取缩略图吗? 我可以从(0,0)中获得固定大小的缩略图。我可以从说(10,20)或(30,30)中得到吗?再次感谢。 我尝试使用CGImageCreateWithImageInRect与矩形这些值为x和y。但它给了我一个点0,0的图像
当你在UIScrollView中缩放UIImageView对象时,你只改变了UIImageView框架,但是UIImage在image属性中保持不变。
,如果你只是想显示此图像中一些其他的UIImageView缩放,你不应该改变的UIImage大小,只要将新的UIImageView帧与从UIScrollView的缩放的UIImageView的框架,并使用相同的图像:
UIImageView * ImageViewOnScroll;
//set image and zoom it
...
UIImageView * newImageView = [[UIImageView alloc] initWithImage:ImageViewOnScroll.image];
newImageView.frame = ImageViewOnScroll.frame;
如果你想创建一个改变后大小,你可以用下面简单的方法做到这一点,例如新的UIImage一些原因:
UIImage * resizeImage(UIImage * img, CGSize newSize){
UIGraphicsBeginImageContext(newSize);
//or other CGInterpolationQuality value
CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationDefault);
[img drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
AFAIK你提到的方法(resizeImage)只会给我一部分图像裁剪。它不会给我放大的图像。 – lostInTransit 2010-03-06 06:02:58
感谢vladd,给了我一个实现我的目的的想法。请参阅更新的问题。上述代码(resizeImage方法)的 – lostInTransit 2010-03-06 11:16:19
返回调整大小的整个图像。使用CGImageCreateWithImageInRect(CGImageRef图像,CGRect矩形); 结合CGImageCreateWithImageInRect和上下文绘图,您可以获取图像的任何部分,将其大小调整为任意大小,并将其放置在新图像的任何区域内。 – Vladimir 2010-03-06 22:52:44
你是什么意思“获得图像”是什么意思?你的意思是你想创建另一个基于这个尺寸的UIImage?或者你想要一个图像文件? – 2010-03-05 10:59:18
我想创建一个UIImage与调整大小的图像。 – lostInTransit 2010-03-05 11:18:00
PPS - 适用于肖像图像。只发布风景图片.. – lostInTransit 2010-03-06 12:59:18