RLE圧縮8ビットRGB TGA画像のデータを含むバッファがあります。私は魔術++画像にこれをロードしたいが、私はここでMagick ++はTGAブロブを読み込んでいません
Magick: no decode delegate for this image format `' @ error/blob.c/BlobToImage/353
を得続けることは私のコードは、私はそれを識別した場合、私はこれを指定した場合、私は、うるさく
window_borders.tga TGA 330x390 330x390+0+0 8-bit sRGB 33106B 0.000u 0:00.000
を取得
#include <Magick++.h>
#include <fstream>
int main(int argc, char** argv)
{
std::ifstream file("window_borders.tga", std::ios::binary | std::ios::ate);
std::streamsize size = file.tellg();
file.seekg(0, std::ios::beg);
char* buffer = new char[size];
if (!file.read(buffer, size)) return 1;
Magick::Blob data_blob(buffer, size);
Magick::Image m_image(data_blob);
return 0;
}
です情報、それはうまく動作します。私もそれを変換することができます
Magick::Image m_image(data_blob, Magick::Geometry("330x390"), "TGA");
m_image.magick("JPEG");
m_image.write("test.jpg");
そして実際test.jpg
とwindow_borders.tga
が同じに見えます。なぜ自動的にフォーマットを検出できないのですか?
デバッガでコードをトレースして、イメージ 'data_blob'の形式が間違っているのを確認しないと、気になりません。 – AlexanderVX
上記の私の編集を参照してください。私はトリプルを確認して、ブロブコンストラクタに正しいデータを入力していることを確認しました。ブロブの有効性は、他の未知の要素によって変化します。 – Max
そして、 'Magick :: Image m_image();'に 'data_blob'パラメータがありませんか? – AlexanderVX