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

时间:2016-08-31 09:55:52

标签: c++ image opencv imagemagick

我有一个image.bmp,我想将其转换为img.jpg。但我希望能够改变jpg图像的参数,例如伽马校正。我怎么能用C ++做这个,也许用opencv或imagemagick?

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

由于

1 个答案:

答案 0 :(得分:0)

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

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; 
}