标题:怎样获取图像(jpg)的尺寸,不是像素,而是文件大小.比如80cm-60cm
只看楼主
qingwen66666
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-2-2
结帖率:100%
已结贴  问题点数:20 回复次数:26 
怎样获取图像(jpg)的尺寸,不是像素,而是文件大小.比如80cm-60cm
如题!
我是想做一个按钮,点取按钮,得到图的路径.然后将图像的长和宽赋值给变量!!感谢!
搜索更多相关主题的帖子: jpg 
2013-02-02 18:45
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
lcImageName='c:\abc.jpg'
Declare Integer GdipLoadImageFromFile In GDIPlus.Dll String wFilename, Integer @nImage
Declare Integer GdipGetImageWidth In GDIPlus Integer img,Integer @ imgwidth
Declare Integer GdipGetImageHeight In GDIPlus Integer img,Integer @ imgheight
Declare Integer GdipDisposeImage In GDIPlus.Dll Long nativeImage
Store 0 To nImage,nWidth,nHeight
GdipLoadImageFromFile(Strconv(lcImageName+Chr(0),5),@nImage)
GdipGetImageWidth(nImage,@nWidth)
GdipGetImageHeight(nImage,@nHeight)
GdipDisposeImage(nImage)
?'图片宽度:',nWidth
?'图片高度:',nHeight 
像素与显示器的分辨率有关系,一般1厘米约为28像素,自己换算吧

[ 本帖最后由 sdta 于 2013-2-2 19:07 编辑 ]

坚守VFP最后的阵地
2013-02-02 19:04
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
获取图像的DPI,就可以从像素求出尺寸了,英寸,转成厘米即可。

授人以渔,不授人以鱼。
2013-02-02 21:02
qingwen66666
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-2-2
得分:0 
DPI 怎么获得啊????
GdipLoadImageFromFile()
我在VFP6 里面不灵啊??
计算大小为0
2013-02-02 21:05
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
那就换VFP9吧


[ 本帖最后由 sdta 于 2013-2-2 21:07 编辑 ]

坚守VFP最后的阵地
2013-02-02 21:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
picsize(参数1[,参数2])
参数说明:
参数1:字符型,指定需要返回大小的图片文件名,如果文件不在当前搜索路径下,请指定全路径。
参数2:字符型可选参数,默认返回图片宽度,当指定参数"h"时,返回图片高度
返回值:数值型。
如果忽略第一个参数,或参数指定的文件不存在,返回0
忽略第二个参数,或第二个参数不是"h",返回图片宽度,否则返回图片高度
sample:
?picsize("c:\windows\tulips.jpg")
800
?picsize("c:\windows\tulips.jpg","h")
600
?picsize("c:\windows\")
0
*代码:
PARAMETERS pict,wh
IF TYPE("pict")<>"C" or !FILE(pict)
   return
ENDIF
IF TYPE("wh")<>"C"  &&参数类型容错
   wh="w"  &&默认返回图片宽度
ENDIF
PRIVATE picw,pich
STORE 0 to picw,pich
picform=CREATEOBJECT("form")
picform.addobject("pic","image")
WITH picform.pic
   .width=0
   .height=0
   .stretch=0
   .picture=pict
ENDWITH
picw=picform.pic.width
pich=picform.pic.height
picform.release
IF wh="h"
   RETURN pich
ELSE
   RETURN picw
ENDIF

坚守VFP最后的阵地
2013-02-02 21:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
VFP6好像不支持GDI处理图像吧。

授人以渔,不授人以鱼。
2013-02-02 21:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
忍不住借用taifu的一句话:今时今日还在死守VFP6不知有什么意思!

授人以渔,不授人以鱼。
2013-02-02 21:36
qingwen66666
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-2-2
得分:0 
有什么办法算出dpi的值呢?
2013-02-02 21:42
qingwen66666
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-2-2
得分:0 
已经安了9了.......
2013-02-02 21:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-398109-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094380 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved