CImageで縮小描画

解決


うま  2005-03-15 20:17:00  No: 56668

連続投稿申し訳ないです。

掲題のとおりCImageを利用しようと思っているのですが、
使ってみたところ縮小描画で色が壊れる現象が発生しています。

  CImage source;
  CImage dest;

  if(source.Load(m_sourceFile) != S_OK || !dest.Create(m_w, m_h, 24)){
    return;
  }
  HDC hdc = dest.GetDC();
  source.Draw(hdc, 0, 0, m_w, m_h);
  dest.ReleaseDC();
  source.Destroy();

  dest.Save(m_fileName);
  dest.Destroy();

  return;

…と、至って単純なソースなのですが、m_w、m_hがオリジナルサイズより小さくなると、色が壊れてしまいます。
オリジナルサイズと同一、又はそれ以上だと、ちゃんとコピーできるのですが…

ソースにはデジカメで撮影した1600*1200の24bit jpegを、現在は400*300の24bitBMPファイルとして出力しています。(最終的にjpegで保存します)

解決方法をご存知の方がいらっしゃいましたら、よろしくお願い致します。

#クラスに頼るなって事でしょうかね^^;


H2  2005-03-15 23:10:16  No: 56669

SetStretchBltModeでHALFTONE指定をすればいいとおもいます。


うま  2005-03-16 00:11:49  No: 56670

あら・・・簡単ですね。
出来ました。
ありがとうございます〜


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加