【发布时间】:2013-07-05 02:30:45
【问题描述】:
我有一个相当标准的 RGBA 图像作为 CGImageRef。
我希望将其转换为 GraphicsMagick Blob (http://www.graphicsmagick.org/Magick++/Image.html#blobs)
转置它的最佳方法是什么?
我有这个,但如果我在 pathString 中指定 PNG8,它只会生成纯黑色图像,否则它会崩溃:
- (void)saveImage:(CGImageRef)image path:(NSString *)pathString
{
CGDataProviderRef dataProvider = CGImageGetDataProvider(image);
NSData *data = CFBridgingRelease(CGDataProviderCopyData(dataProvider));
const void *bytes = [data bytes];
size_t width = CGImageGetWidth(image);
size_t height = CGImageGetHeight(image);
size_t length = CGImageGetBytesPerRow(image) * height;
NSString *sizeString = [NSString stringWithFormat:@"%ldx%ld", width, height];
Image pngImage;
Blob blob(bytes, length);
pngImage.read(blob);
pngImage.size([sizeString UTF8String]);
pngImage.magick("RGBA");
pngImage.write([pathString UTF8String]);
}
【问题讨论】:
标签: objective-c core-graphics graphicsmagick