本帖最后由 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))
- }
复制代码
|