CreateCompatibleBitmapの取得失敗 – プログラミング – Home

通知
すべてクリア

[解決済] CreateCompatibleBitmapの取得失敗


dd
 dd
(@dd)
ゲスト
結合: 22年前
投稿: 17
Topic starter  

いつもお世話になっています、ddです。

画像の回転処理をやっています、
CBitmap rot;// 回転後ビットマップ
CBitmap *old;// 古いビットマップオブジェクト
// 回転後ビットマップ作成
int rd =rot.CreateCompatibleBitmap(pDC, m_dstWidth, m_dstHeight);
if(rd==0)
AfxMessageBox(rd表示失敗);

小さいサイズのフルカラーが回転できます、
大きいのサイズ(フルカラー 5793(幅)*5793(高さ))が
CreateCompatibleBitmapの取得が失敗しました。

原因がわかりません、(CreateCompatibleBitmap()大きさの限度があるみたい)
どう対処すればいいでしょうか。

よろしくお願いします。
環境:.Net2002 Windows XP


引用未解決
トピックタグ
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

> 原因がわかりません、
プラットフォーム SDKのCreateCompatibleBitmapのヘルプに
「Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使いま
す。」
との記述があります。GetLastErrorを使用してみたら如何でしょう。

> (CreateCompatibleBitmap()大きさの限度があるみたい)
同じくプラットフォーム SDKのCreateCompatibleBitmapのヘルプに
「Windows 95/98:作成できるビットマップのサイズは、最大 16MB です。」
との記載がありますが、これ以降のOSに関する制約は記載されていません。
どうなんでしょうかね?

> どう対処すればいいでしょうか。
大きさの制約としたら、適度に分割して処理するのかな?
# 分割して目的に合致するかどうかはわかりませんが。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

>原因がわかりません、(CreateCompatibleBitmap()大きさの限度があるみたい)
>どう対処すればいいでしょうか。

DDB ではなく DIB か DIBSection かを使いましょう


返信引用
dd
 dd
(@dd)
ゲスト
結合: 22年前
投稿: 17
Topic starter  

maruさん、しまさん
回答ありがとう。

>DDB ではなく DIB か DIBSection かを使いましょう
問題がDDBの処理ではなく、
DIBの処理することですね。
CreateDIBSection(。。。)
これから、DIBの処理をやってみます。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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