質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1142閲覧

ピクチャーボックスで合成した画像を名前をつけて保存

sake

総合スコア57

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2021/11/14 16:52

ピクチャーボックスに画像を呼び出し、フォームの一部をキャプチャして合成する所まではできました。
しかし、キャプチャした画像を縮小することができません。
また、ピクチャーボックスの画像を名前をつけて保存すると、キャプチャした画像が入っていませんでした。
イメージ説明
ピクチャーボックスで合成したところです。
イメージ説明
名前を付けて保存した画像
イメージ説明
理想の名前を付けて保存した画像

VB.NET

1Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 2 Handles Button3.Click 3 FileName = DirName & "\" & _ 4 System.IO.Path.GetFileNameWithoutExtension(TextBox3.Text) & ".jpg" 5 Using Jpeg As Bitmap = _ 6 FormUtil.CreateClientBitmap(Me, New Rectangle(709, 158, 435, 366)) 7 Jpeg.Save(FileName, Imaging.ImageFormat.Jpeg) 8 DrawImage(Jpeg, 10, 10) 9 FileName = DirName & "\Test" & 10 System.IO.Path.GetFileNameWithoutExtension(TextBox3.Text) & ".jpg" _ 11 ictureBox2.Image.Save(FileName, Imaging.ImageFormat.Jpeg) 12 End Using 13End Sub 14 15Private Sub DrawImage(ByVal prm_img As Image, ByVal x As Integer, ByVal y As Integer) 16 'グラフィック用オブジェクトを生成 17 Dim gr As Graphics = PictureBox2.CreateGraphics() 18 '画像の描画 19 gr.DrawImage(prm_img, New Point(x, y)) 20End Sub

皆様のお力をお貸しください。
よろしくお願いします。

環境
Windows 10
Microsoft Visual Studio 2010

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(1) CreateGraphics で作成した Graphics オブジェクトに書くと、Image プロパティにセットされた画像は変更されず、表示が変わるだけです。
また、これは一過性のものなので、ウインドウを最小化し、戻したときなど、再描画されると消えてしまいます。
Graphics.FromImage メソッドを使って PictureBox2.Image から Graphics オブジェクトを作成し、DrawImage してください。
PictureBox2.Invalidate() とすると、画面が更新されます。

(2) DrawImage(Image, Int32, Int32) だと縮小されません。
DrawImage(Image, Rectangle) など、サイズを変更できるオーバーロードメソッドを使用してください。

「Graphics.DrawImage メソッド」
https://docs.microsoft.com/ja-jp/dotnet/api/system.drawing.graphics.drawimage?view=net-5.0

投稿2021/11/14 17:35

編集2021/11/14 23:22
KOZ6.0

総合スコア2707

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sake

2021/11/15 16:55

ありがとうございました。 分かり易い解説も付けて頂き、大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問