如果有一个GNU / Linux命令可以执行以下操作,那会不会很好:
Open -Recursive * .png -Not-Case-Sensitive如果导出到jpg @ 100%质量=比原始png少的字节然后写jpg并删除png
它也可以执行该命令的反转:
如果png =少于jpg的字节,则删除jpg
答案 0 :(得分:1)
寻找One True Command并不会有所帮助:如果它存在,它只会对你和(可能)未来确切需要你的小组人有用。
UNIX方法是将几个命令链接在一起以执行您想要的操作。例如:
" open-recursive":使用" find"将文件导入漏斗,例如find / path -type f -name' *。png' -print然后通过管道发送列表。
"不区分大小写":要么增加find(-o)的范围,要么让find转储所有文件,然后使用grep查找你想要的东西,例如find。 -print | grep -i' .png'
" if-exported-to-jpg":这有点棘手,因为我认为检查转换是否保存字节的唯一方法是实际转换它并查看。您可以使用ImageMagick包中的convert工具执行此操作。 ImageMagick多年来一直是大牌发行版的标准,所以应该很容易找到。
"如果字节数少于":在shell或您喜欢的脚本语言中直接做 - Perl,python等。
网络是你从这些较小的部分中建立你想要的东西,你应该能够做你想要的东西,并拥有一些你可以在未来修改或与他人分享的独特需求。这就是UNIX方式。嗯嗯:)
答案 1 :(得分:0)
前段时间,我写了一个脚本来转换我的照片。如果任何宽度或高度大于MAX(默认值= 1024),保持纵横比,并将它们放在不同的文件夹(已创建)中,脚本会减小当前文件夹中所有JPG文件的尺寸。我希望这能帮到你。
#!/bin/bash
if [ ! -d reduced ]
then
mkdir reduced
fi
if [ $# -lt 1 ]
then
MAX=1024
else
MAX=$1
fi
for obj in *.jpg
do
echo "------> File: $obj"
tam=$(expr `identify -format "%b" "$obj" | tr -d "B"` / 1024)
width=$(identify -format "%w" "$obj")
height=$(identify -format "%h" "$obj")
echo -e "\tDimensions: $width x $height px"
echo -e "\tFile size: $tam kB"
if [ $width -gt $height ] && [ $width -gt $MAX ]
then
convert "$obj" -resize $MAX "reduced/$obj.jpg"
cd reduced
mv "$obj".jpg "${obj%.jpg}".jpg;
tam=$(expr `identify -format "%b" "$obj" | tr -d "B"` / 1024)
width=$(identify -format "%w" "$obj")
height=$(identify -format "%h" "$obj")
echo -e "\tNew dimensions: $width x $height px"
echo -e "\tNew file size: $tam kB"
cd ..
echo -e "\tOk!"
elif [ $height -gt $MAX ]
then
convert "$obj" -resize x$MAX "reduced/$obj.jpg"
cd reduced
mv "$obj".jpg "${obj%.jpg}".jpg;
tam=$(expr `identify -format "%b" "$obj" | tr -d "B"` / 1024)
width=$(identify -format "%w" "$obj")
height=$(identify -format "%h" "$obj")
echo -e "\tNew dimensions: $width x $height px"
echo -e "\tNew file size: $tam kB"
cd ..
echo -e "\tOk!"
else
cp "$obj" reduced/
echo -e "\tDo not modify!"
fi
done
答案 2 :(得分:0)
呃,回答你的问题 - “不,可能不会”。
首先,PNG
文件可以支持透明度而JPEG
不能,所以如果这是根据您的规范编写的,那么您可能会失去无数小时的工作,为数千张图像创建透明蒙版。
其次,PNG
文件不支持EXIF / IPTC数据,因此您也会丢失所有版权,相机和镜头设置,GPS数据,日期以及其他元数据的大小。
第三,您的PNG
文件每个通道可能包含16位,而JPEG
每个通道只能存储8位,因此从{{1}移动可能会丢失大量精细的色彩渐变转到PNG
。
第四,您可能会失去与旧版Web浏览器的兼容性,这些浏览器对JPEG
提供了支持。