忍者ブログ
コンピュータ将棋など…。
[384] [383] [382] [381] [380] [379] [378] [377] [376] [375] [374]
jpeg や png を表示する必要性に迫られて、初めて GDI+ を使ってみました。

いやー、便利ですね。
文字列は WCHAR で渡す必要があるとか表示が遅いとかいろいろありますが、ファイルの読み込みから表示があっさりできてしまいました。
しかも、α付の png なら抜き色とかANDで抜いてORで描くとか何も考えずに単に上書きすればちゃんと表示される。
楽チン、楽チン…、と思ったら落とし穴にはまりました。

単にウインドウ全面に描くときには気づかなかったのですが、始点を指定して表示すると妙に大きく描画されはみ出す?!
で、いろいろ調べてみたら画面の解像度(標準は96DPI)と表示したい画像の解像度(72DPI)が違うとサイズが同じになるように描画される(96/72倍される)ようです。

Graphics の複数ある DrawImage メソッドのうち、描画側と元画像の両方の領域を指定してやるメソッドを使って、同じ画素数になるように指定してやれば意図したサイズで表示されることがわかりました。

あんまり C++ で GDI+ を使う情報がないみたいで、ヘッダを見ながら試行錯誤しながらやってます。
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


忍者ブログ [PR]
カレンダー
05 2017/06 07
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
フリーエリア
なのはの応援をしていただき、かつ協力いただける方は、アマゾンでの買い物は下のリンクからお願いします
プロフィール
HN:
かず
性別:
非公開
バーコード
ブログ内検索
最古記事
カウンター
アクセス解析