我想通过复制像素来升级(爆炸)图像。
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;
}
如何扩大图像尺寸。我尝试以线性方式复制像素,但我最终得到了两张图像的图像。
答案 0 :(得分:0)
在目标大小处创建一个CGBitmapContext,然后将图像绘制到它。
答案 1 :(得分:0)
我维护了一个非常易于使用的iOS库ANImageBitmapRep。 ANImageBitmapRep
类允许您以多种不同方式轻松缩放图像,包括最基本的图像:
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:
方法进行缩放,从而不会使图像不成比例。