C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

形式を変えずにJpgファイルをリサイズする方法

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■83746 / inTopicNo.1)  形式を変えずにJpgファイルをリサイズする方法
  
□投稿者/ ruru (8回)-(2017/04/06(Thu) 12:58:35)

分類:[.NET 全般] 

2017/04/06(Thu) 13:00:41 編集(投稿者)

お世話になります。画像についての質問です。

開発環境:VB.NET


JPGの画像を、サイズ調整の為にリサイズしたいと思っております。
その際下記のページを参考にさせていただきました。
https://dobon.net/vb/dotnet/graphics/drawimage.html

その結果、リサイズは行う事が出来ましたが、
別のソフトでリサイズ後のJPGを表示する必要があるのですが、そこで表示されなくなってしまいました。


現在のソースコードを記載します。

Dim image As New Bitmap(sImgFile)
Dim canvas As New Bitmap(ImageWidth, ImageHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb)
Dim g As Graphics = Graphics.FromImage(canvas)
'補間方法として高品質双三次補間を指定する
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor

'画像を縮小して描画する
g.DrawImage(image, 0, 0, ImageWidth, ImageHeight)
'BitmapとGraphicsオブジェクトを破棄
image.Dispose()
g.Dispose()
canvas.Save(sResizeImgFile)

――補足――
調査の上でフリーソフトをDLし、リサイズ後のJPGの形式を調べたところ
「ベースライン形式ではありません」と表示されます。
何かのヒントなのかもしれませんが、わかりませんでした。
リサイズ前のJPGは見ることは出来ます。
――――――


以上のことから、何か形式が変わってしまったのではないかと思っております。
どなたか、ご教示お願い致します。

引用返信 編集キー/
■83747 / inTopicNo.2)  Re[1]: 形式を変えずにJpgファイルをリサイズする方法
□投稿者/ ruru (9回)-(2017/04/06(Thu) 13:06:18)
2017/04/06(Thu) 13:09:57 編集(投稿者)

質問した直後ですが、自己完結しそうなため一旦終了とします。
(※恐らく拡張子と内容が一致していないです)
お騒がせいたしました。
解決済み
引用返信 編集キー/
■83748 / inTopicNo.3)  Re[1]: 形式を変えずにJpgファイルをリサイズする方法
□投稿者/ 魔界の仮面弁士 (1243回)-(2017/04/06(Thu) 13:12:02)
No83746 (ruru さん) に返信
> 現在のソースコードを記載します。
canvas の Dispose が漏れていませんか?


> 別のソフトでリサイズ後のJPGを表示する必要があるのですが、そこで表示されなくなってしまいました。
> canvas.Save(sResizeImgFile)
Save 時に format を指定していないため、
恐らく PNG 形式で保存されてしまっています。
https://msdn.microsoft.com/ja-jp/library/ktx83wah.aspx


> 何か形式が変わってしまったのではないかと思っております。
JPEG 形式で保存するように見直してみてください。
https://dobon.net/vb/dotnet/graphics/saveimage.html
https://dobon.net/vb/dotnet/graphics/encoderparameters.html
引用返信 編集キー/
■83750 / inTopicNo.4)  Re[2]: 形式を変えずにJpgファイルをリサイズする方法
□投稿者/ ruru (10回)-(2017/04/06(Thu) 13:31:46)
>>魔界の仮面弁士 様
前回のみならず、今回もご教示ありがとうございます。

>>canvas の Dispose が漏れていませんか?
気づいておりませんでした、ご指摘ありがとうございます。

>>恐らく PNG 形式で保存されてしまっています。
仰る通りのようで、PNG形式でした。

canvas.Save(sResizeImgFile(iFtpNo), ImageFormat.Jpeg)

このように対応いたしました。


貴重なお時間を頂き、ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ