度々お世話になっております。
非常に大きなサイズ(40MBくらい)を以下のようにStretchDrawすると失敗します。
これは縦横を半分に縮小しています。
Image->Picture->Bitmap->Canvas->StretchDraw( rect, bitmap );
bitmapのサイズを小さくすると正常にStretchDrawしてくれますが
大きなサイズでは無理なのでしょうか?
DelphiのTBitmapには巨大なBitmapを扱うことができないバグがあって、
C++Builderでもあるいは.....
Delphiでは DHGLというものが公開されていて、大きなBitmapを扱うためのTBigBitmapクラスがありますが。
http://www.asahi-net.or.jp/~HA3T-NKMR/DGS/
お答えありがとうございます。
ちなみに失敗するのはStretchDrawだけで
DrawやTextOutは更に大きなサイズにしても正常に動作をしておりました。
教えていただいたサイトを見てみます。
ちょっと思ったんですけど、大きな画像を何回かに分けて少しずつ小さくしたら
どうなります?
元Canvasから1/3ずつCopyRectしてそれをStretchDrawして
それを組み合わせるのはたぶんうまくいくとおもいます。
StretchDrawの引数のBitmapが大きくならないので。。(すみません試してはいないですが・・)
どうしてもダメなら分割してやることを考えていたのですが、
先ほど教えて頂いたサイトのBigBitmapを使ってみましたが
C++Builder2007でも普通に使えた上に正常に縮小することができました。
色々ご意見ありがとうございました。
ツイート | ![]() |