int _imageWidth = 320
int _imageHeight = 240
int _inputComponents = 1
try
{
struct jpeg_compress_struct jcs;
struct jpeg_error_mgr jem;
jcs.err = jpeg_std_error(&jem);
jpeg_create_compress(&jcs);
FILE *fp = nullptr;
if ((fp = fopen(path.c_str(), "wb")) != nullptr)
{
jpeg_stdio_dest(&jcs, fp);
jcs.image_width = _imageWidth;
jcs.image_height = _imageHeight;
jcs.input_components = _inputComponents;
if (_inputComponents == 1)
{
jcs.in_color_space = JCS_GRAYSCALE;
}
else
{
jcs.in_color_space = JCS_RGB;
}
jpeg_set_defaults(&jcs);
jpeg_set_quality(&jcs, 90, TRUE);
jpeg_start_compress(&jcs, TRUE);
JSAMPROW rowPointer[1];
long rowStride = _imageWidth * _inputComponents;
JSAMPROW p = (JSAMPROW)buf;
while (jcs.next_scanline < _imageHeight)
{
rowPointer[0] = &p[jcs.next_scanline * rowStride];
(void)jpeg_write_scanlines(&jcs, rowPointer, 1);
}
jpeg_finish_compress(&jcs);
fclose(fp);
fp = nullptr;
}
jpeg_destroy_compress(&jcs);
}
catch (...)
{
return false;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)