投稿者 るきお  (社会人) 投稿日時 2009/10/31 06:17:14
こんにちは。

たぶんその画像だけdpiが小さいのだと思います。
その画像はほかの画像と同じように生成された画像ですか?
また、その画像だけ何かの画像処理ソフトで加工したり、または加工はしなかったけど開いて保存したということはありませんか?

私のロジックではdpiを96に変換する(みたいな)ので、dpiが96でない画像を変換すると拡大したり縮小したりします。

私もちゃんとは理解していないのですが、ほとんどの画像はdpiが96になっており特に問題はないようです。
ためしにPhotoDrawV2でわざとdpiが60のjpgを作成し、回転後拡大してしまうことを確認しました。
以下のように逆に縮小する変換を加えることで拡大を相殺し大きさを変化させないことができるようです。

'▼描画実行 

Dim DestImage As New Bitmap(NewWidth, NewHeight)
Dim g As Graphics = Graphics.FromImage(DestImage)
Dim M As New Drawing2D.Matrix

Dim MagnifyingPowerX As Single = SourceClone.VerticalResolution / 96
Dim MagnifyingPowerY As Single = SourceClone.HorizontalResolution / 96

'背景色の描画 
g.FillRectangle(New SolidBrush(BackColor), DestImage.GetBounds(GraphicsUnit.Pixel))

'回転と平行移動 
M.Translate(OffsetX, 0)
M.Rotate(Degree)
M.Scale(MagnifyingPowerX, MagnifyingPowerY)
g.Transform = M


このコードは全体ではなく、
http://homepage1.nifty.com/rucio/main/dotnet/Samples/Sample144ImageRotate.htm
のサンプルの一部です。

該当部分をこのコードに置き換えて試してみてください。