GDIとGDI+の混在 – プログラミング – Home

通知
すべてクリア

[解決済] GDIとGDI+の混在


vector
 vector
(@vector)
ゲスト
結合: 14年前
投稿: 4
Topic starter  

GDI+未経験です。

Bitmapの回転・拡大・縮小・変形をGDI+で組み込もうと
思っています。
組み込もうというのは、現在テキストの回転・拡大・縮小
をすでに組み込んだGDIベースのモジュールに対してです。

このテキスト処理をGDI+に移行せずに、Bitmapとテキスト
を同じデバイスコンテキストに出力可能でしょうか?

よろしくお願い申し上げます。

#GDIのSetWorldTransformでも考慮したんですが、よくある
画像編集ツールで、四角枠の四隅につけられた変形・回転
ハンドルをマウスでドラッグするような操作の実現は厳しい
とどこかで読みました。


引用未解決
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

コメント付きませんねぇ。
ビットマップを保存するときぐらいしかGDI+は使ったことがありませんが、
 1.GDI+は、旧GDIを土台に機能拡張したClassライブラリである。
 2.自分が上を設計するならば、互換性を保ったラッパとして実装するはず。
 3.できない、又はハングする非互換性部分には「警告」又は「エラー」が
   出るように型又はclassをデザインするはず。
と考えられます。
どのクラスに何をしようとしているのか、いまいち不明ですが、
「とにかくやってみればわかる」のではないでしょうか。
それが、C++の良いところです。


返信引用
vector
 vector
(@vector)
ゲスト
結合: 14年前
投稿: 4
Topic starter  

仲澤@失業者さんコメントありがとうございます。
やってみれば...といわれましたが、そこらを解説した記事
がないものでしょうか?
この機能をGDIのみで実装したオープンソースはなく、有名どこ
ろはGDI+のようでした。


返信引用
きのこ
 きのこ
(@きのこ)
ゲスト
結合: 15年前
投稿: 3
 

GDI+の経験も知識も無いのですが、
「猫でもわかるプログラミング」さんのWindows SDK編 第4部 第335章
GDI+の基礎その1によると、GDI+のGraphicsオブジェクトは、
Graphics MyGraphics(hdc); のようにHDCを指定して作成できるようです。

vectorさんのGDIベースのモジュールでも、おそらく描画先にHDCを用いていると思います。
そのHDCでGraphicsオブジェクトを作成してGDI+のBitmap描画を行い、最後に同じ
HDCに対して、GDIベースの既存のテキスト描画処理を行うのはどうでしょうか?

(参考)
猫でもわかるプログラミング
http://homepage2.nifty.com/c_lang/

>この機能をGDIのみで実装したオープンソースはなく、有名どころはGDI+のようでした。

以前、GDI(DIBSection)にてアフィン変換(回転・拡大縮小・せん断など)を実装した事が
あるのですが、かなり面倒だった気がします。
もしGDI+で画像処理が実現出来るのであれば、GDI+を使う方が良いかもしれません。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

既にコメントがついていますが、
GDIとGDI+はHDCによって同じ対象を扱う事ができます。
この事はそれぞれのプログラミング方法の説明を元に
試してみれば、わかると思います。
GDIにしてもGDI+にしてもそれなりに説明を行なっている
サイトがあると思いますのでまずはそこを参考にして
テスト的にプログラムを組んでみてはいかがでしょうか?


返信引用
vector
 vector
(@vector)
ゲスト
結合: 14年前
投稿: 4
Topic starter  

きのこさん、コメントありがとうございます。
画像相当にこなされるようにお見受けします。
猫でもわかるプログラミング、文字通りぴったりでした。
GDI+がこんなに扱いやすいとは...(*^_^*)。

PATIOさん、コメントありがとうございます。
仲澤@失業者さんに言われたように、やっとテスト的に
プログラムを組んでみようと思えるようになりました。

みなさんどうもサポート、ありがとうございました。


返信引用
vector
 vector
(@vector)
ゲスト
結合: 14年前
投稿: 4
Topic starter  

解決しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました