mac:将剪贴板中的tiff转成png,以压缩文档大小

2020-07-17  本文已影响0人  hufang360
b4.png

3年前因为 OmniGraffle 入坑mac,现在mac已成了主力系统,虽然这些年OmniGraffle用得很少,它的很多工作逐渐被 Sketchfigma 取代。一时兴起想要解决当年遇到的一个“小困扰”。

在使用 keynoteOmniGraffle 时插入一些图片后,文件变得非常大,诶,源图片是png的,都比较小,不应该啊~
之前在简书上发的一篇文章,就跟这个有关。
[MacOS][Word]Windows平台下图片显示异常

实验1

实验2

实验3

实验4

对比可以发现:

在mac上很多情况下,复制图片都是复制成tiff格式的,比如从浏览器“复制图片”操作都会将图片转成tiff格式,这样无形中就大大增加keynote的文件大小。

那有没有办法把tiff转成png呢?
最简单的方法就是复制后,粘贴到微信聊天输入区域,此时输入区域会显示图片,选中图片然后⌘+C,这样得到的图片就是png的了。
最近发现微信会在转成png的时候会把图像缩小,碗里的饭瞬间就不香了。
经过一番研究,终于可以用脚本来解决,舒爽~

#!/bin/bash
cd ~
# create dir "Clipboard_trans"
if [ ! -d "Clipboard_trans"  ];then
  mkdir "Clipboard_trans"
fi
cd "Clipboard_trans"
mark=0

# tiff
result=$(osascript -e 'clipboard info' | grep '«class PNGf»')
if [[ "$result" != "" ]]
then
    echo -e "1.save tiff"
    osascript -e "get the clipboard as «class PNGf»" | sed "s/«data PNGf//; s/»//" | xxd -r -p > x.tiff

    echo "2.convert to png"
    sips -s format png -s formatOptions default x.tiff --out x.png

    echo "3.copy png to clipboard"
    osascript -e 'set the clipboard to (read "x.png" as «class PNGf»)'
    
    # exit shell
    exit
else
    echo "Clipboard not found tiff image."
fi

# pdf
result=$(osascript -e 'clipboard info' | grep '«class PDF »')
if [[ "$result" != "" ]]
then
    echo -e "1.save pdf"
    osascript -e "get the clipboard as «class PDF »" | sed "s/«data PDF //; s/»//" | xxd -r -p > x.pdf

    echo "2.convert to png"
    sips -s format png -s formatOptions default x.pdf --out x.png

    echo "3.copy png to clipboard"
    osascript -e 'set the clipboard to (read "x.png" as «class PNGf»)'

    # exit shell
    exit
else
    echo "Clipboard not found pdf image."
fi
echo "Nothing to do!!!"

脚本功能:
读取剪贴板,将tiff或pdf的图像转成png格式

脚本工作原理:

转换产生的临时文件,都保存在 ~/Clipboard_trans 目录下,仅保留最近一次的内容。

大致流程就是:将脚本保存为".sh"文件后,下次从浏览器复制图片后,双击下sh脚本,然后再粘贴到keynote中就可以了。
需要注意的是 sketch、figma、wps不受tiff的影响。

上一篇下一篇

猜你喜欢

热点阅读