tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル縮小画像の保存
記事No9212
投稿日: 2009/07/26(Sun) 17:28
投稿者bin
縮小画像の保存についてお教えください。

 下記のコーディングで画像は縮小表示できたのですが、
表示しないで、縮小画像を保存したいのです。
 下記で'画像を縮小表示以下のところをどのように修正すれば
よいのかお教えください。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '補間方法を指定して画像を縮小して表示する
        'Bitmapオブジェクトの作成
        Dim image = New Bitmap("D:\写真他\テスト画像\jpg\Water lilies.jpg")
        'PictureBox1のGraphicsオブジェクトの作成
        Dim g As Graphics = PictureBox1.CreateGraphics()
        '補間方法として最近傍補間を指定する
        g.InterpolationMode = _
            System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor
        '画像を縮小表示
        g.DrawImage(image, 0, 0, 150, 120)
      

        'BitmapとGraphicsオブジェクトを破棄
        image.Dispose()
        g.Dispose()

    End Sub
End Class

[ツリー表示へ]
タイトルRe: 縮小画像の保存
記事No9213
投稿日: 2009/07/26(Sun) 18:47
投稿者Hongliang
PictureBox ではなく、新しく作成した Bitmap に描画します。
http://msdn.microsoft.com/ja-jp/library/system.drawing.bitmap.bitmap.aspx
Graphics の取得には、Graphics.FromImage 静的メソッドを使用します。
保存は Bitmap の Save メソッド。

[ツリー表示へ]
タイトルRe^2: 縮小画像の保存
記事No9214
投稿日: 2009/07/26(Sun) 19:30
投稿者bin
> PictureBox ではなく、新しく作成した Bitmap に描画します。
> http://msdn.microsoft.com/ja-jp/library/system.drawing.bitmap.bitmap.aspx
> Graphics の取得には、Graphics.FromImage 静的メソッドを使用します。
> 保存は Bitmap の Save メソッド。

 Hongliang 様 レス有難うございます。
 私のコーディングは他からのコピーを一部修正しただけで、よく
わかっていません。取得といわれても理解できない低いレベルの知
識しかありません。お示しのページを見てもよくわかりません。
 私の書いたコーディングに修正、追加等では出来ないのでしょうか。
 具体的にコーディングを示していただければ大変助かります。
 お手数をお掛けしますが、よろしくお願いいたします。
 

[ツリー表示へ]
タイトルRe^3: 縮小画像の保存
記事No9216
投稿日: 2009/07/27(Mon) 14:35
投稿者bin
Hongliang 様

 下記のような形で保存は出来るようになったのですが、縮小はされないまま保存
されます。
 縮小の方法をどのようにしてこの中にコーディングすればよいのでしょうか。
 お手数ですが具体的にお教えいただければ有り難いです。
 よろしくお願いします。



   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
        '画像を作成する
        Dim bmp As New Bitmap("D:\写真他\テスト画像\jpg\Water lilies.jpg")

        'bmpを 150x120 の大きさにしたBitmapオブジェクトを作成
      
        Dim small As Bitmap = New Bitmap(bmp, 150, 120)
        'JPG形式で保存する
        bmp.Save("D:\写真他\テスト画像\test\Water lilies.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

        '後片付け
        bmp.Dispose()
        small.Dispose()

    End Sub

[ツリー表示へ]
タイトルRe^4: 縮小画像の保存
記事No9218
投稿日: 2009/07/27(Mon) 20:20
投稿者Hongliang
> Hongliang 様
掲示板での質問回答は基本的に1対多のやりとりになるので、
回答に対するレスポンス・礼としてはともかく
こういう名指し(に見える物)はやめといた方が良いです。

Bitmap オブジェクトはビットマップ画像を表してます。

> Dim bmp As New Bitmap("D:\写真他\テスト画像\jpg\Water lilies.jpg")
この bmp はファイルから読み込んだビットマップ画像です。

> Dim small As Bitmap = New Bitmap(bmp, 150, 120)
こっちの small は、bmp のビットマップ画像を元に
150x120 のサイズに縮小して新しく作成したビットマップ画像です。

> bmp.Save("D:\写真他\テスト画像\test\Water lilies.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
bmp はファイルから読み込んだビットマップ画像ですよね?
それを Save すれば、当然ファイルから読み込んだ画像がそのまま保存されます。
保存したいのは縮小して新しく作成した方のビットマップ画像ですよね。

ちなみに、この Bitmap(Image, Integer, Integer) を使って縮小する場合、
補間方法(サイズ変更時の品質)を指定できませんのでご注意ください。
取り敢えず縮小さえできればいいのなら特に問題はありませんが。
そこそこ綺麗にやっててくれますし。

[ツリー表示へ]
タイトルRe^5: 縮小画像の保存
記事No9219
投稿日: 2009/07/27(Mon) 21:22
投稿者bin
Hongliang 様

> 掲示板での質問回答は基本的に1対多のやりとりになるので、
> 回答に対するレスポンス・礼としてはともかく
> こういう名指し(に見える物)はやめといた方が良いです。

  了解しました。どうも失礼しました。

> > Dim small As Bitmap = New Bitmap(bmp, 150, 120)
> こっちの small は、bmp のビットマップ画像を元に
> 150x120 のサイズに縮小して新しく作成したビットマップ画像です。
>
> > bmp.Save("D:\写真他\テスト画像\test\Water lilies.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
> bmp はファイルから読み込んだビットマップ画像ですよね?
> それを Save すれば、当然ファイルから読み込んだ画像がそのまま保存されます。
> 保存したいのは縮小して新しく作成した方のビットマップ画像ですよね。
>
 bmp.Save を small.Save とすることで縮小することが出来ました。
 
 どうも有難うございました。(今回はお名前を書かせて頂きました)

[ツリー表示へ]