标题: [文件操作] [已解决]一段图片处理代码 win10可以,win7不行 哪里错了? [打印本页]
作者: ximenhao 时间: 2023-1-18 13:40 标题: [已解决]一段图片处理代码 win10可以,win7不行 哪里错了?
本帖最后由 ximenhao 于 2023-1-23 14:40 编辑
目的就是:
1:文件夹中有几百 几千张图片;
2:需要把原本的图片修改下。提取图片的文件名 并写在 图片下面(不能盖住 原本图片内容),生成一张新图片
代码是:根据原本图片的宽度,再写个高,生成一张白底黑字的图片,然后把图片的文件名写在这个白底上,这一系列动作之后的新图片 例如叫:A图片。然后 原图片 我们叫B图片,最后就是A和B 合并,A在B的底下;
win7运行不了啊 哪里出错啦 求教下。
- <# :
- @echo off
- rem 字体靠左显示的,想更改可以改18行的那个0,字体大小可以改17行的24.0
- powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0' |Out-String|Invoke-Expression"
- pause
- #>
- [system.reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
- function mer($path1, $text, $path2){
- $pic = New-Object System.Drawing.Bitmap($path1)
- $out=New-Object Drawing.Bitmap $pic.Width,($pic.Height+50)
- $g=[Drawing.Graphics]::FromImage($out)
- $g.DrawImage($pic,0,0,$pic.Width,$pic.Height)
- $pic1=New-Object Drawing.Bitmap $pic.Width,50
- $g1=[Drawing.Graphics]::FromImage($pic1)
- $g1.FillRectangle([System.Drawing.Brushes]::White, 0, 0, $pic.Width, 50)
- $g.DrawImage($pic1,0,$pic.Height,$pic.Width,50)
- $font=[System.Drawing.Font]::new("宋体",24.0)
- $g.DrawString($text,$font,[System.Drawing.Brushes]::Black,0,$pic.Height+15)
- $out.Save($path2)
- $pic.Dispose()
- $pic1.Dispose()
- }
- $ext=@('.jpg', '.jpeg', '.bmp', '.png', '.gif', '.TIF');
- dir |?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])}|%{
- mer -path1 $_.fullname -text $_.basename -path2 $_.fullname.replace($_.Extension, (“_1”+$_.Extension))
- }
复制代码
作者: 谐夜落风 时间: 2023-1-18 13:49
我看调用了powershell,win7上的powershell版本比较老了,可能有些高级命令还没有,等待高手解答……
作者: pd1 时间: 2023-1-18 20:59
回复 2# 谐夜落风
17行改成
$font=New-Object System.Drawing.Font("宋体", 24)
作者: ximenhao 时间: 2023-1-18 21:39
回复 3# pd1
大侠 牛逼了,居然成了 哈哈!非常感谢啊!!!我差点就要因为这个问题 把win7给升级win10了。现在不用了 哈哈
作者: 谐夜落风 时间: 2023-1-18 22:04
不过话说,既然代码全是bat调用powershell,那不如发powershell求助区,哈哈
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |