svpng
svpng copied to clipboard
无法保存稍大一点的图片
Milo您好,我在本地编译试验了下您的代码,想要生成一个高分辨率的图片,但似乎无法正确保存,经过测试 256 x 128 是可以保存到本地的,但 2560 x 1280 却生成不了,不知道为啥, 头文件的代码暂时没太看懂。
void test(void)
{
unsigned char rgb[2560 * 1280 * 3], *p = rgb;
unsigned x, y;
FILE *fp = fopen("wallpaper.png", "wb");
for (y = 0; y < 256; ++y)
{
for (x = 0; x < 128; ++x)
{
*p++ = 128;
*p++ = 128;
*p++ = 128;
*p++ = 128;
}
}
svpng(fp, 2560, 1280, rgb, 1);
fclose(fp);
}
中文的简介:极简的 PNG 编码函数 svpng() - 知乎
你声明了一张 w=2560, h=1280, alpha=false
实际呢?
输入的 img rgb 也就 128*256*4
,长宽不对,而且多了 alpha 通道。
仔细看看 usage
同样的问题我也遇到了 unsigned char rgb[1814 * 923 * 4], p = rgb;经过测试256256 像素图片可以正常保存,1000100 也可以正常保存,但是稍微大一点 1814923 就无法正常保存了,运行过程中就要报错了! 请问下,这个问题您解决了么?
同样的问题我也遇到了 unsigned char rgb[1814 * 923 * 4], p = rgb;经过测试256256 像素图片可以正常保存,1000100 也可以正常保存,但是稍微大一点 1814923 就无法正常保存了,运行过程中就要报错了! 请问下,这个问题您解决了么?