如何将多页Magick++图像转换为QImage
How to convert multi page Magick++ Image to QImage?
我将Magick++单页图像转换为QT图像(实际上是QPixmap,但也可以是QImage):
Blob my_blob_1;
Image img1;
img1.magick("MNG"); // or PNG
img1.write(&my_blob_1);
const QByteArray imageData1((char*)(my_blob_1.data()),my_blob_1.length());
item1p.loadFromData(imageData1);
item1 = Scene->addPixmap(QPixmap(item1p));`
哪里:
QPixmap item1p;
QGraphicsScene *Scene;
QGraphicsPixmapItem *item1;`
我的问题是:如何使用多页图像做到这一点?下面,我在矢量中有一个多页图像,我用 STL 算法对其进行了操作,但我找不到将其输出到 QT Image 的方法。Magick++将其写入单个blob。我需要写入每个页面的单独 blob。是我,还是有别的办法?矢量到 QVector
Blob my_blob_111;
vector<Image> imageListmpp;
writeImages( imageListmpp.begin(), imageListmpp.end(), &my_blob_111 );
Image aaa;
aaa.read(my_blob_111);
aaa.write( "D:/test/aaa.pdf" );`
我欢迎任何建议。
谢谢!
既然你已经有了魔法Image
的向量,你的错误是将它们都保存为一个独特的Blob
。相反,将它们分别转换为 blob,然后转换为QPixmap
:
vector<Image> imageListmpp; // your input
QVector<QPixmap> pixmaps; // your output (use std::vector if you prefer)
QVector<QGraphicsPixmapItem *> graphicsItems;
for(int i=0; i<imageListmpp.size(); i++)
{
// Get the individual image data
Blob blob;
imageListmpp[i].magick("MNG"); // or PNG
imageListmpp[i].write(&blob);
const QByteArray imageData((char*)(blob.data()),blob.length());
// Convert the data to a QPixmap in the vector
pixmaps << QPixmap();
pixmaps.last().loadFromData(imageData);
graphicsItems << Scene->addPixmap(pixmaps.last());
}
相关文章:
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 将 BGR 图像转换为 jpeg 格式的 base64 字符串
- C++ Gdi+将图像转换为灰度
- 将 BMP 图像转换为灰度
- Qmage:如何将灰色图像转换为RGB热图
- 更快地将卤化物图像转换为 opencv 垫?
- 将原始视频图像转换为VPX编码器的I420
- ROS中未定义的参考误差到OpenCV图像转换器
- 如何将图像转换为灰度 opengl c++
- 将 24 位".bmp"图像转换为黑白/单色图像的可能算法是什么?
- 在OpenCV中将灰度图像转换为单色
- RGB到XYZ,图像转换
- 如何将图像转换为C 中的RGB数据值
- OpenCV:将图像转换为C++数组
- 从两个图像转换的OpenCV
- 使用某些系数将图像转换为灰度的最快方法
- 将RGB颜色图像转换为OpenCV C 中的索引颜色图像类型
- CUDA OPENCV CVTCOLOR调用不会将图像转换为不同的格式
- 将 RGB 图像转换为 3 个 HSI 输出
- VTK 将 2D 图像转换为 3D (C++)