ฉันสับสนเล็กน้อยกับวิธีการบีบอัดรูปภาพที่คุณต้องการใช้อย่างถูกต้อง ดังที่กล่าวไปแล้วนั่นก็คือ sips
ตัวอย่างการทำงานที่ใช้การดึงไดเร็กตอรี่ของอิมเมจและก้าวผ่านรายการด้วยการปรับขนาดหากความกว้างไม่ใช่ 800px
property theWidth : 800
tell application "Finder"
try
## Choose directory
set imageDir to choose folder with prompt "Please select directory."
## Get list of items in diretory
set the imageList to list folder imageDir without invisibles
## Step through images
repeat with theImage in imageList
## Turn path to posix path
set imagePos to quoted form of POSIX path of ((imageDir as text) & contents of theImage)
## Get image width
set imgWidth to (do shell script "sips -g pixelWidth " & " " & imagePos & " " & "| tail -n1 | cut -d' ' -f4") as integer
## if not equal to set variable width resize
if imgWidth ≠ theWidth then do shell script "sips --resampleWidth " & theWidth & " " & imagePos
end repeat
on error error_message
display dialog error_message
end try
นั่นเป็นเพียงตัวอย่างของสิ่งที่คุณสามารถทำได้ด้วยความกว้าง ตามที่ระบุไว้ในความคิดเห็นที่คุณสามารถตรวจสอบเพื่อดูว่ามีความกว้างหรือความสูงอีกต่อไปและปรับขนาดจากที่นั่น ถ้าคุณทำ man sips
ในเทอร์มินัลคุณสามารถดึงข้อมูลทุกประเภท รหัสด้านบนใช้หางและตัดเพื่อตัดการคืนสินค้า การปรับขนาดทำได้ด้วย --resampleWidth
. คุณสามารถ resample ตามความสูงด้วย --resampleHeight
.
เกี่ยวกับลักษณะการบีบอัดหากเป็น PNG คุณสามารถใช้ Optipng . หากคุณต้องการสิ่งที่คุณสามารถเรียกใช้ด้วย PNG และ JPG ที่คุณสามารถใช้ได้ Trimage . AppleScript / Automater สามารถใช้สคริปต์ในการบีบอัดยูทิลิตี้ คุณจะต้องโทรจาก bin
ตรวจสอบว่ามีการบีบอัดข้อมูลหรือไม่:
try
set checkBin to "(ls usr/local/bin/optipng >> /dev/null 2>&1 && echo yes) || echo no"
return do shell script checkBin
on error error_message
return error_message
end try
ด้านบนคือการตรวจสอบ OptiPNG หากคุณต้องการตรวจสอบว่ามีการติดตั้งสิ่งที่ HomeBrew คุณสามารถใช้คำสั่งที่คล้ายกันใน /usr/local/Cellar
.
เชลล์ที่กล่าวมาทั้งหมดสามารถทำได้อย่างสมบูรณ์ในเชลล์สคริปต์ มันขึ้นอยู่กับสิ่งที่คุณต้องการและวิธีที่คุณต้องการรันโค้ด