我将图像存储为C中的原始RGBA位图。我正在使用:
unsigned char *rgbaData
size_t rgbaDataLength;
size_t width;
size_t height;
现在我考虑如何重新缩放它(调整大小)以从当前的宽度/高度获得 - > new_width / new_height 即可。
我需要编写类似这个原型的函数:
int rgbaResize(const unsigned char *rgbaData, const size_t rgbaDataLength,
const size_t width, const_size_t height, const size_t newWidth,
const size_t newHeight, unsigned char **newRgbaData, size_t *newRgbaDataLength);
我的意思是这样的,但是跨平台的解决方案或用户实现:
let context = CGBitmapContextCreate(nil, width, height, bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo.rawValue)
CGContextSetInterpolationQuality(context, kCGInterpolationHigh)
CGContextDrawImage(context, CGRect(origin: CGPointZero, size: CGSize(width: CGFloat(width), height: CGFloat(height))), cgImage)
let scaledImage = CGBitmapContextCreateImage(context).flatMap { UIImage(CGImage: $0) }
可以通过一些免费的,开源的和轻量级的跨平台库来完成吗?