我正在尝试调整CGImageRef的大小,以便可以在屏幕上以我想要的大小绘制它。 所以我有这样的代码:在核心图形中调整图像大小
CGColorSpaceRef colorspace = CGImageGetColorSpace(originalImage);
CGContextRef context = CGBitmapContextCreate(NULL,
CGImageGetWidth(originalImage),
CGImageGetHeight(originalImage),
CGImageGetBitsPerComponent(originalImage),
CGImageGetBytesPerRow(originalImage),
colorspace,
CGImageGetAlphaInfo(originalImage));
if(context == NULL)
return nil;
CGRect clippedRect = CGRectMake(CGContextGetClipBoundingBox(context).origin.x,
CGContextGetClipBoundingBox(context).origin.y,
toWidth,
toHeight);
CGContextClipToRect(context, clippedRect);
// draw image to context
CGContextDrawImage(context, clippedRect, originalImage);
// extract resulting image from context
CGImageRef imgRef = CGBitmapContextCreateImage(context);
所以这段代码可以让我的形象显然是吸取我要的尺寸,这很好。 问题是,即使它在屏幕上调整大小,但实际上没有实际调整大小,我仍然会调整实际图像的大小。当我这样做时:
CGImageGetWidth(imgRef);
它实际上返回图像的原始宽度,而不是我在屏幕上看到的宽度。
那么我怎样才能真正创建一个实际调整大小的图像,而不仅仅是绘制出我想要的尺寸?
谢谢
你只是想*绘制*调整大小,或者你真的想要调整大小吗?你可以做第一个,而不用做第二个(也许它更快) – Robin 2011-04-27 23:17:57