簡體   English   中英

怎么把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" );`

我歡迎任何建議。

謝謝!

由於您已經有了Magick 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());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM