找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 13635|回复: 9

[问题求助] [已解决]PowerShell怎样把图片缩小,并复制到另外一个图片的右下角?

[复制链接]
发表于 2024-5-29 09:04:11 | 显示全部楼层 |阅读模式
本帖最后由 czjt1234 于 2024-5-30 08:14 编辑

微信收款码.jpg
支付宝收款码.jpg
桌面背景.jpg

需要在桌面背景的右下角添加微信收款码和支付宝收款码

收款码截图需要缩小为400x300像素左右
因为二维码有些变形也不要紧,所以两个收款码要调整为大小一样

把两个收款码复制到背景图片右下角并排排列
发表于 2024-5-29 09:10:15 | 显示全部楼层
 楼主| 发表于 2024-5-29 11:25:38 | 显示全部楼层
回复 2# Batcher


    谢谢,我想学习下怎么用ps实现
发表于 2024-5-29 17:28:15 | 显示全部楼层
test.ps1
  1. cls

  2. #文件名
  3. $bg_img = '桌面背景.jpg'
  4. $wx_img = '微信收款码.jpg'
  5. $zfb_img = '支付宝收款码.jpg'

  6. #收款码尺寸
  7. $w = 400
  8. $h = 300

  9. #右,下边距和收款码间距
  10. $r = 10
  11. $b = 10
  12. $margin = 10


  13. #加载背景
  14. $bmp = [System.Drawing.Bitmap]::FromFile($bg_img)
  15. $g = [System.Drawing.Graphics]::FromImage($bmp)

  16. #绘制微信收款码
  17. $x = $bmp.Width - $r - $w
  18. $y = $bmp.Height - $b - $h
  19. $img = [System.Drawing.Image]::FromFile($wx_img)
  20. $g.DrawImage($img,$x,$y,$w,$h)
  21. $img.Dispose()

  22. #绘制支付宝收款码
  23. $x = $x - $margin - $w
  24. $img = [System.Drawing.Image]::FromFile($zfb_img)
  25. $g.DrawImage($img,$x,$y,$w,$h)
  26. $img.Dispose()

  27. #保存
  28. [void]$g.Save()
  29. $bmp.Save('bg_new.jpg')
  30. $g.Dispose()
  31. $bmp.Dispose()
复制代码
发表于 2024-5-29 19:09:52 | 显示全部楼层
直接用400x300了
不知行否

  1. Add-Type -AssemblyName System.Drawing

  2. $img_bg=[Drawing.Image]::FromFile('桌面背景.jpg')
  3. if(($img_bg.width -lt 400*2) -or ($img_bg.height -lt 300)){"do noting";cmd /c pause}
  4. $img_wechat=[Drawing.Image]::FromFile('微信收款码.jpg')
  5. $img_alipay=[Drawing.Image]::FromFile('支付宝收款码.jpg')

  6. $new_image=[drawing.bitmap]::new($img_bg.width,$img_bg.height)
  7. $img_canvas=[drawing.graphics]::fromimage($new_image)
  8. $img_canvas.InterpolationMode=[Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
  9. $img_canvas.drawimage($img_wechat,$new_image.width-400,$new_image.height-300,400,300,)
  10. $img_canvas.drawimage($img_alipay,$new_image.width-400*2,$new_image.height-300,400,300,)
  11. $new_image.save( 'new'+[datetime]::now.GetHashCode().tostring()+'.jpg',[Drawing.Imaging.ImageFormat]::Jpeg)

  12. $img_canvas.dispose();$new_image.dispose();
  13. $img_alipay.dispose();$img_wechat.dispose();$img_bg.dispose();
复制代码
 楼主| 发表于 2024-5-29 21:19:16 | 显示全部楼层
本帖最后由 czjt1234 于 2024-5-30 06:27 编辑

回复 4# went


运行报错

找不到类型 [System.Drawing.Bitmap]。
所在位置 行:22 字符: 8
+ $bmp = [System.Drawing.Bitmap]::FromFile($bg_img)
+        ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Drawing.Bitmap:TypeName) [],RuntimeException
    + FullyQualifiedErrorId : TypeNotFound
找不到类型 [System.Drawing.Graphics]。
所在位置 行:23 字符: 6
+ $g = [System.Drawing.Graphics]::FromImage($bmp)
+      ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Drawing.Graphics:TypeName) [],RuntimeException
    + FullyQualifiedErrorId : TypeNotFound
找不到类型 [System.Drawing.Image]。
所在位置 行:27 字符: 8
+ $img = [System.Drawing.Image]::FromFile($wx_img)
+        ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Drawing.Image:TypeName) [],RuntimeException
    + FullyQualifiedErrorId : TypeNotFound


系统是 win10 22H2 /  win11 22H2
 楼主| 发表于 2024-5-29 21:21:14 | 显示全部楼层
本帖最后由 czjt1234 于 2024-5-29 21:24 编辑

回复 5# Five66


二维码成功复制到了图片右下角,大小和位置都对
但是桌面背景图没了,变成全黑色

桌面背景.jpg是
300dpi
7087x3543

其中11行和12行报错,我把300后面的,去掉了运行成功的
发表于 2024-5-29 22:02:45 | 显示全部楼层
回复 6# czjt1234


    cls下面插入一行
  1. [void][System.Reflection.Assembly]::LoadWithPartialName('System.Drawing')
复制代码

评分

参与人数 1技术 +1 收起 理由
czjt1234 + 1 乐于助人

查看全部评分

发表于 2024-5-29 23:44:08 | 显示全部楼层
回复 7# czjt1234


   
额,抱歉,忘了要贴背景图了,5楼代码第10行后加上一行
$img_canvas.drawimage($img_bg,0,0,$img_bg.width,$img_bg.height)
11行和12行那确实多了个逗号,去掉

评分

参与人数 1技术 +1 收起 理由
czjt1234 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-5-30 08:14:26 | 显示全部楼层
回复 8# went
回复 9# Five66

均测试成功

非常感谢

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:30 , Processed in 0.021836 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表