2020年5月31日日曜日

FreeImageを使ってみた win32api c++

# FreeImageを使ってみた win32api c++

20/5//26
画像ファイルの自作ビューアをVS・c++で書き直してみてるんだけど、win32apiで書くと基本はgdi+を使うことになる
しかしこれが結構使いずらいし、Qtよりも遅いことがわかった
アプリの起動自体は当然速いけど大きな画像ファイルの縮小処理が遅い
ちなみに使いずらさの最大はファイルからLoadすると排他制御になってしまうこと。メモリの管理もよくわからなくてリークしまくりなこと(これは私の勉強不足なんだが)

で、他のライブラリを使ったらどうなのかと思い少し調べたらまあ当然だがいろいろあり、まず試したのがこれ、FreeImageです
特徴的なことをいくつかメモしておくと
・入手はサイトからバイナリを落とせば良い、ビルドしなくてもdll・lib・hをそのまま使えば簡単に実装出来る
・win32なつくりでマニュアルも良くcからは使いやすい、画像表示は簡単
・c#用のラッパーもあるので普通の.Net環境でもいけるらしい
・メタデータにアクセスできます
・対応フォーマットが豊富でpsdもいけます

ただし、私の私見ではありますが、
・画像縮小のスピードはgdi+よりも遅い┐('д')┌
ので結局私はgdi+に戻りました( ´∀`)
このことについては時間計測のコードを書いて試した結果で、体感ともあってました

私が昔自作したときはxnViewが無料で配布していたgfl.dllってのを使った
でももう配布してないし32なので今は使えない
古くはsusieのプラグインなんてのもあったよねえ
今はこの FreeImageの他に Devilってのも良いらしい
この二つは色んな画像形式に対応しているようだが、現実的には扱う画像はほぼjpegとpingだから直接このライブラリを二つ単品で使おうかとも考えたりした

今はいろいろあって良いねえ
昔からあったけど情報が少なかったのかな?
でもそもそもプログラミングってどれくらいの人がやってるんだろう
需要あるのかね?

-------
FreeImage
http://freeimage.sourceforge.net/features.html

Devil
http://openil.sourceforge.net/

0 件のコメント:

コメントを投稿