关于jpg文件格式的一个情景-第四篇(Magick++:先学习)

另一个图像处理的开源的库:Magick++ 

原文地址:https://blog.csdn.net/weixin_30732825/article/details/99595869

Magick++ 是著名开源图片处理库ImageMagick提供的 C++库。在命令行可以直接使用相关 ImageMagick 的命令直接完成上述任务。要是C++编程完成需要调用 Magick++ 的API。

#include <iostream>
#include <Magick++.h>
 
int main(int argc, char **argv)
{
 
    Magick::InitializeMagick(*argv);
    Magick::Image image;
    try{
        image.read("./patternsBoard1.png"); // read an image from directory
        image.resolutionUnits(Magick::PixelsPerCentimeterResolution); // 设置分辨率单位为 像素/厘米
        image.density("120x120"); // 纵、横分辨率都是 120 px/cm
        image.write("./patternsBoard3.pdf"); // 保存为pdf 
    }catch(Magick::Exception &erro_){
        std::cout<< "Caught exception:" << erro_.what() <<std::endl;
        return 1;
    }
    return 0;
}

与opencv的转换:

    cv::Mat cvimage;
    cvimage = cv::imread("./patternsBoard1.png" ,cv::IMREAD_GRAYSCALE);
    Magick::Image image(cvimage.cols,cvimage.rows,"I",MagickCore::CharPixel, (char *)cvimage.data);

 

posted @ 2025-08-05 18:26  Wind_Swing_Dunn  阅读(4)  评论(0)    收藏  举报