在c++中将bmp转换为LINEAR jpeg

Convert bmp to LINEAR jpeg in C++

本文关键字:LINEAR jpeg 转换 bmp c++ 中将      更新时间:2023-10-16

我有一个image.bmp,我想把它转换成image. jpg。但我希望能够改变jpg图像的参数,例如伽马校正。我如何在c++中做到这一点,也许使用opencv或imagemagick ?

我已经尝试使用CImage类,但当我将图像从bmp转换为jpg时,它太小(从80MB到2MB),我失去了很多信息。这就是为什么我希望能够控制参数。

谢谢

ImageMagick有一个名为magick++的c++ API。使用Magick::Image类进行图像处理,例如伽马校正可以通过image.gamma(1.0);方法完成。方法image.magick( "JPEG" )将输出格式设置为JPEG。有关更多细节,请参阅imag++示例。

int main(int argc,char **argv) 
{ 
  InitializeMagick(*argv);
  Image image( "picture.bmp" );
  // Do your transformation on 'image' here      
  image.magick( "JPEG" ) 
  image.write( "converted.jpg" );
  return 0; 
}