掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GDI+で作成するサムネイルの画質を上げるには? (ID:139310)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
K.J.K 様、ありがとうございます。 おかげさまで、ぐっと進みました!! 今のところ、画像を縮小することはできたのですが、 たとえば1200*1600の画像を240*320のサイズに縮小すると、 サイズは1200*1600のままで、240*320の部分以外は真っ黒になってしまいます。 おそらくGdipDrawImageRectIの使い方をきちんと 把握できていないためだとは思うのですが・・・。 どのように修正したらよいか教えていただけないでしょうか。 ' GDIスタートアップ構造体初期化 GdiPStartupInput.GdiplusVersion = 1 ' GDI+ライブラリ初期化して失敗なら終了 If GdiplusStartup(GDIPToken, GdiPStartupInput, 0&) <> 0 Then Exit Sub ' 画像ファイルをイメージとして読み込む ret = GdipLoadImageFromFile(StrPtr(SrcFileName), pImageSource) Do Until ret <> GDIPlusStatusConstants.Ok If GdipCreateFromHWND(0, pGraphicsDesktop) <> 0 Then Exit Do ' 幅、高さを取得 If GdipGetImageWidth(pImageSource, lngWidth) <> 0 Then Exit Do If GdipGetImageHeight(pImageSource, lngHeight) <> 0 Then Exit Do If GdipCreateBitmapFromGraphics(lngWidth, lngHeight, pGraphicsDesktop, pImageThumbnail) <> 0 Then Exit Do If GdipGetImageGraphicsContext(pImageThumbnail, pGraphicsThumbnail) <> 0 Then Exit Do ' 変換後画像の幅、高さを計算 dblWidthRatio = MaxWidth / lngWidth dblHeightRatio = MaxHeight / lngHeight If dblWidthRatio > 1 And dblHeightRatio > 1 Then ElseIf dblWidthRatio < dblHeightRatio Then lngWidth = MaxWidth lngHeight = Round(lngHeight * dblWidthRatio) Else lngWidth = Round(lngWidth * dblHeightRatio) lngHeight = MaxHeight End If ' サイズ変換 If GdipDrawImageRectI(pGraphicsThumbnail, pImageSource, 0, 0, lngWidth, lngHeight) <> 0 Then Exit Do GdipDisposeImage pImageSource GdipDisposeImage pGraphicsThumbnail ' JPEG 保存 If SavePictureJpg(pImageThumbnail, DstFileName, JpegQuality) <> 0 Then Exit Do GdipDisposeImage pImageThumbnail Exit Do Loop ' GDI+ライブラリ開放 GdiplusShutdown GDIPToken
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.