| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3223 人关注过本帖, 1 人收藏
标题:求助图片文件批处理.
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用flyingcat2008在2015-12-31 16:11:27的发言:

现在他们的这些相片都是为某种考试或证书要贴的照片,由考生们交上来的,尺寸是按照规定的,但是容量大小各自都不一样,我估计楼主是想统一容量,又不占太多空间,故推荐了一个可下载的软件给楼主,楼主看到贴也给我们回复一声啊。


那樣的東西,通常要打印,分辨率不同,相同寛高的圖打出來是不同大小的。也就是説,不能僅統一圖的寛高像素點數,那在顯示器上的一樣尺寸,但在打印設備上就不一樣了。我想,樓主就是煩惱這一點。

授人以渔,不授人以鱼。
2015-12-31 16:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
在XP中,顯示的分辨率是72DPI,但在Windows 7/8/10以上,是96DPI,同樣的圖,顯示出來的尺寸是不一樣的。同樣,在不同DPI設置的打印機上,同一張圖也可以有不同的大小。這些不是看圖的寛高値,而是兩者結合。

授人以渔,不授人以鱼。
2015-12-31 16:22
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
*!*    调整图像分辨率和调整图像质量的两个函数:

Clear
inFile = Getfile("JPG")  && 源图像文件名,可以直接指定文件名,比如:inFile = "C:\Temp\MyImageJPG"
outFile = "Temp.Jpg"  && 目标图像文件名,可以指定盘符和路径名
tnW = 225  && 目标图像宽
tnH = 400  && 目标图像高
=Resolution(inFile, outFile, tnW, tnH)  && 四个参数,不可缺。


*!*    1. 调整图像分辨率
Function Resolution(inFile As Character, outFile As Character, tnW As Integer, tnH As Integer)
    Local Img  && As ImageFile
    Local IP  && As ImageProcess

    Img = Createobject("WIA.ImageFile")
    IP = Createobject("WIA.ImageProcess")

    Img.LoadFile(inFile)

    *!*    大小/调整分辨率:
    IP.Filters.Add(IP.FilterInfos("Scale").FilterID)
    IP.Filters(1).Properties("MaximumWidth") = tnW
    IP.Filters(1).Properties("MaximumHeight") = tnH

    Img = IP.Apply(Img)
    Delete File &outFile
    Img.SaveFile(outFile)

    *!*    比较压缩调整前后的文件大小
    =Adir(gaJPG, inFile)
    ? "调整前的文件大小 : " + Transform(gaJPG(2)/1024) + "KB"
    =Adir(gaJPG, outFile)
    ? "调整后的文件大小 : " + Transform(gaJPG(2)/1024) + "KB"
    ? "完成."
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-01-01 16:12
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
Clear
inFile = Getfile("JPG")  && 源图像文件名,可以直接指定文件名,比如:inFile = "C:\Temp\MyImageJPG"
outFile = "Temp.Jpg"  && 目标图像文件名,可以指定盘符和路径名
lnRatio = 75  && 压缩率,范围:1-100
=Quality(inFile, outFile, lnRatio)  && 三个参数,不可缺。


*!*    2. 调整图像质量
Function Quality(inFile As Character, outFile As Character, lnRatio As Integer)
    Local Img  && As ImageFile
    Local IP  && As ImageProcess

    Img = Createobject("WIA.ImageFile")
    IP = Createobject("WIA.ImageProcess")

    Img.LoadFile(inFile)

    *!*    压缩/调整质量:
    IP.Filters.Add(IP.FilterInfos("Convert").FilterID)
    IP.Filters(1).Properties("FormatID").Value = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"  && JPG 文件格式
    IP.Filters(1).Properties("Quality").Value = lnRatio

    Img = IP.Apply(Img)
    Delete File &outFile
    Img.SaveFile(outFile)

    *!*    比较调整前后的文件大小
    =Adir(gaJPG, inFile)
    ? "调整前的文件大小 : " + Transform(gaJPG(2)/1024) + "KB"
    =Adir(gaJPG, outFile)
    ? "调整后的文件大小 : " + Transform(gaJPG(2)/1024) + "KB"
    ? "完成."
Endfunc

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-01-01 16:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
現在的問題的原圖分辨率差異巨大,從72DPI到300DPI都有,在維持寛高不變的情況下,從高分向低分壓縮沒問題,反過來就會模糊了。樓主的需求必須明確才好,編程不是問題。在顯示器上,72或96DPI就可以,但若是打印,應該在180DPI以上,印刷的標準是300DPI,誰知道他處理這些圖要派在什麽用塲。

[此贴子已经被作者于2016-1-1 16:23编辑过]


授人以渔,不授人以鱼。
2016-01-01 16:17
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用TonyDeng在2016-1-1 16:17:51的发言:

現在的問題的原圖分辨率差異巨大,從72DPI到300DPI都有,在維持寛高不變的情況下,從高分向低分壓縮沒問題,反過來就會模糊了。樓主的需求必須明確才好,編程不是問題。在顯示器上,72或96DPI就可以,但若是打印,應該在180DPI以上,印刷的標準是300DPI,誰知道他處理這些圖要派在什麽用塲。

放假三天没上网,真是不好意思。T版主,是这样的,这些图片是要网上报数据用的,但是报数据的平台上传图片文件的要求就是大小不能超过10K,像素150*210。目前是用图像软件处理,但是我想用VFP编程来批处理,不知道有没有办法。
2016-01-04 14:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
可以的,其實前面13、14樓那樣的也可以。

授人以渔,不授人以鱼。
2016-01-04 14:39
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
哦,我再试试13,14楼的
运行报错.
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-1-4 15:13编辑过]

2016-01-04 15:10
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
系统没有安装WIA
自己下载安装:http://download.
参考里面的 readme.txt 使用和注册
2016-01-04 16:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
Windows内核GDI+本來就包含足够的圖像處理元素,不必使用別的東西。之前的帖子提到了_GDIPlus.VCX,可以打開它看看。

授人以渔,不授人以鱼。
2016-01-04 16:08
快速回复:求助图片文件批处理.
数据加载中...
 
   



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

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