升级(爆炸)CGImageRef就像iPad上的iPhone模拟器一样。 1px到2px

时间:2011-09-05 08:07:32

标签: iphone ios image

我想通过复制像素来升级(爆炸)图像。

1 px - > 2px的

知道如何阅读个体像素(RGBA):

CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(myImage));  
UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef); 

int length = CFDataGetLength(m_DataRef); 

for (int i=0; i<length; i+=4){

    int r = i;
    int g = i+1;
    int b = i+2;
    int a = i+3;   
}

如何扩大图像尺寸。我尝试以线性方式复制像素,但我最终得到了两张图像的图像。

2 个答案:

答案 0 :(得分:0)

在目标大小处创建一个CGBitmapContext,然后将图像绘制到它。

答案 1 :(得分:0)

我维护了一个非常易于使用的iOS库ANImageBitmapRepANImageBitmapRep类允许您以多种不同方式轻松缩放图像,包括最基本的图像:

UIImage * myImage = [UIImage imageNamed:@"myImage.png"];
ANImageBitmapRep * irep = [ANImageBitmapRep imageBitmapRepWithImage:myImage];
[irep setSize:BMPointMake(width, height)];
UIImage * scaled = [irep image];

这将实现您的目标,而无需处理大量的位图上下文和CoreGraphics。我还要注意,每个ANImageBitmapRep都由CGContextRef支持,可以使用context方法轻松检索。如果您手动更改上下文,只需运行[myBitmap setNeedsUpdate:YES]

您还可以使用setSizeFittingFrame:setSizeFillingFrame:方法进行缩放,从而不会使图像不成比例。