以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]PictureBox图片缩放问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65142)

--  作者:pcxjxjhkw
--  发布时间:2015/3/10 11:20:00
--  [求助]PictureBox图片缩放问题
PictureBox的图片如何按指定比例放大或缩小,求助大家,谢谢


--  作者:有点甜
--  发布时间:2015/3/10 11:21:00
--  
    Dim img As image = getImage("d:\\test.jpg")
    Dim bmp As new bitmap(img, 180, 180 * (img.height / img.width))
    bmp.save("D:\\test01.jpg")
    bmp.Dispose
--  作者:Bin
--  发布时间:2015/3/10 11:23:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=49135&skin=0
--  作者:pcxjxjhkw
--  发布时间:2015/3/10 11:27:00
--  
甜老师,可能是我的表述有问题。
只需将PictureBox中的图片

放大或缩小显示,而原图不需改变。

--  作者:有点甜
--  发布时间:2015/3/10 11:29:00
--  
 一样啊,取出原图,然后扩大缩小,然后再赋值给pictureBox啊,你不save就行了
--  作者:pcxjxjhkw
--  发布时间:2015/3/10 11:31:00
--  
哦,谢谢
--  作者:pcxjxjhkw
--  发布时间:2015/3/10 11:41:00
--  
甜老师,出现新问题,无法连续缩小。代码如下:
Dim pic As WinForm.PictureBox = e.Form.Controls("图片预览框")
Dim img As image = getImage(pic.ImageFile)
Dim bmp As new bitmap(img, img.height*0.9, img.width*0.9)
\'bmp.save("D:\\test01.jpg")
\'bmp.Dispose
pic.Image = bmp

--  作者:有点甜
--  发布时间:2015/3/10 11:42:00
--  
Dim img As image = pic.Image
--  作者:pcxjxjhkw
--  发布时间:2015/3/10 11:50:00
--  
甜老师,又出现新问题,通过反复放大与缩小,图上分辨率下降,模糊不清了。
放大:Dim pic As WinForm.PictureBox = e.Form.Controls("图片预览框")
Dim img As image = pic.Image
Dim bmp As new bitmap(img, img.Width*1.1, img.Width*1.1*(img.Height/img.Width))
\'bmp.save("D:\\test01.jpg")
\'bmp.Dispose
pic.Image = bmp
缩小代码:Dim pic As WinForm.PictureBox = e.Form.Controls("图片预览框")
Dim img As image = pic.Image
Dim bmp As new bitmap(img, img.Width*0.9, img.Width*0.9*(img.Height/img.Width))
\'bmp.save("D:\\test01.jpg")
\'bmp.Dispose
pic.Image = bmp

--  作者:有点甜
--  发布时间:2015/3/10 11:52:00
--  

呃,肯定,扩大或缩小的时候,不要从显示的图片那里开始。

 

要从最原始的图片文件开始,控制好图片的比例即可,比如两次缩小,就是原来的图片缩小 0.9*0.9