0

C ++用のMagick ++ API(ImageMagickの一部)を使用しようとしていますが、しばらく見回していて、Googleでそれほど多くのドキュメントや例を見たことがありません. ping()それについては多くの優れたドキュメントがありますが、 (ネットワーク ping ではない) 関数を使用して c++ プログラム内の画像のサイズ情報を返す方法については何も見つかりません。blobエラーで見たように、オブジェクトを作成して使用しようとしました。

次のような同じ一般的なマニュアルをたくさん見ました。

http://web.mit.edu/graphics/share/ImageMagick/www/Magick++/Image.html#Image%20Attributesこれはと同じですhttp://www.imagemagick.org/Magick++/Image.html

ping「Image Manipulation Methods」の下を見ていたところ、const Blob &blob_入力として を受け取っていることがわかりました。で何をしているのかよくわかりませんが、次のことを試してみましたping()。他にもたくさんの機能がありますが、これを理解することはできません。

#include <Magick++.h> 
#include <iostream> 
using namespace std; 
using namespace Magick; 
int main(int argc,char **argv) 
{ 
        InitializeMagick(*argv);

        Image master("horse.jpg"); 
        Image second = master; 

        // tried creating a blob (Binary Large OBject) per the error
        Blob blob; 
        master.write ( &blob);  

        cout << blob.ping(&blob) << endl; 
        // also tried
        // cout << master.ping() << endl;
        // cout << master.ping( &blob) << endl;

        return 0
} 

Magick++ のものや ping の例については、あまり見つけることができません。

test3.cpp:15:26: note: candidates are:
In file included from /usr/include/ImageMagick/Magick++.h:10:0,
                 from test3.cpp:1:
/usr/include/ImageMagick/Magick++/Image.h:501:21: note: void Magick::Image::ping(const string&)
     void            ping ( const std::string &imageSpec_ );
                     ^
/usr/include/ImageMagick/Magick++/Image.h:501:21: note:   candidate expects 1 argument, 0 provided
/usr/include/ImageMagick/Magick++/Image.h:507:21: note: void Magick::Image::ping(const Magick::Blob&)
     void            ping ( const Blob &blob_ );
                     ^
/usr/include/ImageMagick/Magick++/Image.h:507:21: note:   candidate expects 1 argument, 0 provided

したがって、マニュアルには記載されていないpingが返されると思いますvoid。そこから値を取得する方法もわかりません。ソースコードを見るだけでいいですか?これについてもっと読むことができる場所を知っている人はいますか?または、Magick ++に精通している人です。無知で申し訳ありませんが、Googleはこれについての結果をあまり出していません.

どんな助けでも大歓迎です!

4

1 に答える 1

0

readとほとんど同じことを行うため、 pingの戻り値の型は 'void'です。pingメソッドは画像からすべてのメタデータを読み取りますが、「ピクセル データ」を含む部分に到達するとすぐに画像の処理を停止します。「ピクセルデータ」を読み取ることはできませんが、画像が「ping」された後に列()行()を取得できます。この情報は、http: //www.imagemagick.org/Magick++/Image.htmlにある Magick++ のドキュメントでも入手できます。

以下は、 pingメソッド の使用例です。

#include <Magick++.h> 
#include <iostream> 
using namespace std; 
using namespace Magick; 
int main(int argc,char **argv) 
{ 
  InitializeMagick(*argv);

  Image master; 
  master.ping("horse.jpg");
  cout << master.columns() << "x" << master.rows() << endl; 

  return 0;
} 
于 2015-03-09T09:45:58.580 に答える