ピクチャーボックスの画像を縮小して保存する への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 win  (社会人)
投稿日時
2016/12/31 16:45:46
Dim canvas As Bitmap
Dim g As Graphics
をformの最初に宣言し
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
Grid.Draw(e.Graphics, xp_n, yp_n, cross)
Grid.Draw(g, xp_n, yp_n, cross) <-追加記載
End Sub
のように追加記載し、
ボタンとところで、
Dim senderName As String = DirectCast(sender, Button).Name
Dim lngW As Integer
Dim lngH As Integer
IngW = Int(canvas.Width * 0.183)
IngH = Int(canvas.Height * 0.183)
Dim objBtm2 As New Bitmap(canvas, lngW, lngH)
Dim gif_name As String = "gif_data\" & senderName & ".gif"
objBtm2.Save(gif_name, System.Drawing.Imaging.ImageFormat.Gif)
で、うまくいきました。
Dim g As Graphics
をformの最初に宣言し
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
Grid.Draw(e.Graphics, xp_n, yp_n, cross)
Grid.Draw(g, xp_n, yp_n, cross) <-追加記載
End Sub
のように追加記載し、
ボタンとところで、
Dim senderName As String = DirectCast(sender, Button).Name
Dim lngW As Integer
Dim lngH As Integer
IngW = Int(canvas.Width * 0.183)
IngH = Int(canvas.Height * 0.183)
Dim objBtm2 As New Bitmap(canvas, lngW, lngH)
Dim gif_name As String = "gif_data\" & senderName & ".gif"
objBtm2.Save(gif_name, System.Drawing.Imaging.ImageFormat.Gif)
で、うまくいきました。
投稿者 shu  (社会人)
投稿日時
2016/12/31 15:09:16
PictureBoxと同じ大きさのビットマップを用意して
bmp =new Bitmap(幅, 高) など
Dim grp = Graphic.FromImage(bmp)
で作成したグラフィックにPictureBoxでのPaint処理と
同じ処理を行い描画を行います。
それが提示されたobjBtm相当のものになるので
後は同じ処理を行えばよいかと思います。
bmp =new Bitmap(幅, 高) など
Dim grp = Graphic.FromImage(bmp)
で作成したグラフィックにPictureBoxでのPaint処理と
同じ処理を行い描画を行います。
それが提示されたobjBtm相当のものになるので
後は同じ処理を行えばよいかと思います。
投稿者 win  (社会人)
投稿日時
2016/12/31 12:10:55
ケンシロウさま
おっしゃる通り、paint イベントで作成した画像を、縮小保存したいのです。
おっしゃる通り、paint イベントで作成した画像を、縮小保存したいのです。
投稿者 ケンシロウ  (社会人)
投稿日時
2016/12/30 23:33:34
PictureBox1.ImageがNothngなのではないですか?
> picturebox1で画像を作成した時は
とありますが、「画像を作成」とは具体的にはどのようにしたのですか?
もしかして、PictureBox1.Imageに画像をセットしているのではなく、
PictureBox1のPaintイベントで画像を描画していますか?
> picturebox1で画像を作成した時は
とありますが、「画像を作成」とは具体的にはどのようにしたのですか?
もしかして、PictureBox1.Imageに画像をセットしているのではなく、
PictureBox1のPaintイベントで画像を描画していますか?
投稿者 win  (社会人)
投稿日時
2016/12/30 21:52:43
Dim objBtm = New Bitmap(PictureBox1.Image) '<- nothingになる。
Dim lngW As Long
Dim lngH As Long
lngW = objBtm.Width * 0.183
lngH = objBtm.Height * 0.183
Dim objBtm2 As New Bitmap(objBtm, lngW, lngH)
Dim gif_name As String = "gif_data\" & str_d & ".gif"
objBtm2.Save(gif_name, System.Drawing.Imaging.ImageFormat.Gif)
などと、記述しました。Picturebox1へ画像を張り付けたときは、うまくいきますが、picturebox1で画像を作成した時は、一番上の行がnothingになり、うまくいきません。
Dim lngW As Long
Dim lngH As Long
lngW = objBtm.Width * 0.183
lngH = objBtm.Height * 0.183
Dim objBtm2 As New Bitmap(objBtm, lngW, lngH)
Dim gif_name As String = "gif_data\" & str_d & ".gif"
objBtm2.Save(gif_name, System.Drawing.Imaging.ImageFormat.Gif)
などと、記述しました。Picturebox1へ画像を張り付けたときは、うまくいきますが、picturebox1で画像を作成した時は、一番上の行がnothingになり、うまくいきません。
以下を作ってからです。
canvas = New Bitmap(PictureBox1.Width, PictureBox1.Height)
g = Graphics.FromImage(canvas)