以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何获得服务器上图片文件的高和宽  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=161360)

--  作者:cqlwsam
--  发布时间:2021/3/15 9:50:00
--  如何获得服务器上图片文件的高和宽
窗口中有picturebox控件,需要获得服务器上图片的宽与高,决定图片在控件中的缩放方式。如何获得该图片的宽与高?谢谢!

Dim pb As WinForm.PictureBox = e.form.controls("PictureBox1")
pb.FTPclient = ftp1 \'服务器图片
pb.ImageFile = t5 & t1
Dim img As Image = GetImage(t5 & t1)
If img.Height < pb.Height AndAlso img.Width < pb.Width Then
      pb.SizeMode = ImageSizeMode.CenterImage
Else
      pb.SizeMode = ImageSizeMode.Zoom
End If

运行提示:未将对象引用设置到对象的实例。

代码“dim img as image 。。。”前的部分运行正常。
代码错误应该在:Dim img As Image = GetImage(t5 & t1)
[此贴子已经被作者于2021/3/15 9:54:34编辑过]

--  作者:有点蓝
--  发布时间:2021/3/15 9:56:00
--  
msgbox(t5 & t1) 显示的是什么路径?

下面2种用法仅支持本地路径,ImageFile可以支持http,但是不支持ftp的
pb.ImageFile = t5 & t1
Dim img As Image = GetImage(t5 & t1)

--  作者:cqlwsam
--  发布时间:2021/3/15 10:00:00
--  
t5 是ftp服务器上图片保存的目录, t1是文件名。
pb.imgefile = t5 & t1 运行正常

注释掉Dim img As Image = GetImage(t5 & t1)正常。
[此贴子已经被作者于2021/3/15 10:06:08编辑过]

--  作者:有点蓝
--  发布时间:2021/3/15 10:09:00
--  
GetImage仅支持本地路径
--  作者:cqlwsam
--  发布时间:2021/3/15 10:20:00
--  
那如何来获得ftp上图片的宽与高?谢谢!


--  作者:有点蓝
--  发布时间:2021/3/15 10:26:00
--  
下载到本地http://www.foxtable.com/webhelp/topics/1410.htm
再使用GetImage

--  作者:cqlwsam
--  发布时间:2021/3/15 10:31:00
--  
picturebox控件中显示的文件都会缓存到本地项目文件夹中RemoteFiles目录下,获得项目文件夹的名称即可。如何获得项目文件夹?


--  作者:有点蓝
--  发布时间:2021/3/15 10:34:00
--  
msgbox(ProjectPath & "RemoteFiles\\")
--  作者:cqlwsam
--  发布时间:2021/3/15 10:40:00
--  
ok。搞定。
        Dim pb As WinForm.PictureBox = e.form.controls("PictureBox1")
        pb.FTPclient = ftp1 \'服务器图片
        pb.ImageFile = t5 & t1
        Dim txt As String = ProjectPath & "\\RemoteFiles\\" & t5 & t1
        Dim img As Image = GetImage(txt)
        If img.Height < pb.Height AndAlso img.Width < pb.Width Then
            pb.SizeMode = ImageSizeMode.CenterImage
        Else
            pb.SizeMode = ImageSizeMode.Zoom
        End If