我当然知道剪贴板传递的是bmp,但是如果目标软件反正是要把bmp压一次的,在中间压一次的意义何在呢?你压的这一步的效果(包括质量、体积、兼容性等)就一定优于目标软件吗?
有一点我不能确认的是,目标软件收到jpg会不会再压一遍?我感觉微信应该是会的。如果确实如此,压两遍肯定损失会更大。
我当然知道剪贴板传递的是bmp,但是如果目标软件反正是要把bmp压一次的,在中间压一次的意义何在呢?你压的这一步的效果(包括质量、体积、兼容性等)就一定优于目标软件吗?
有一点我不能确认的是,目标软件收到jpg会不会再压一遍?我感觉微信应该是会的。如果确实如此,压两遍肯定损失会更大。
不用SlimPaste:
图片 → 剪贴板像素数据 → 目标软件转像素为图片
用SlimPaste:
图片 → 剪贴板像素数据 → SlimPaste压缩后以FileDrop文件对象发送 → 目标软件
注意,从SlimPaste出来不再是像素了,而直接是图片。
那么目标软件会不会拿图片再去压缩一次呢?大部分软件不会,至少我还没碰到,不排除某些软件设计了这个环节。
这个很好验证,比如微信,
这是我的测试结果:
不能打包票,这个问题相当于问 JPEGli(或其他优秀图片压缩方案)产出结果否一定在所有情况下都优于某个软件的某一次压缩?没有一个方案能保证。
SlimPaste 能提供的是,让大多数情况下图片图片体积有数量级的下降,且保证一定画质。(在乎画质,SlimPaste的压缩参数也是可调的)
但是,你可能说,你真的很在乎画质,那么你不应该用剪贴板发送图片,当用剪贴板发送图片的时候,你的图片质量已经拱手交给了别人。真的在乎画质,你应该用“发送文件”和“插入文件”的方式发送或插入目标软件。
是的,最大 4MB,而且指的是像素数据。也就是说原图可能不到4MB,它就放不下了。
别的我不知道,但对于QQ而言,以文件对象写入输入框的图片默认是不会触发任何处理的,也很好验证。这样写入的图片发出去之后再右键查看图片位置是指向程序压缩后的图片,而不是一个临时文件。换言之QQ只是把本地文件当图片发出去了而已。
我遇到最离谱就是微信,一张几MB的jpeg图片复制粘贴到微信输入框发送出去图片能膨胀到几十MB
这种机制好像在windows里很早就有了,记得还用win98和winXP时候,经常保存网页上一些素材和图片,都是右键复制然后文件管理器里粘贴,到最后会越来越卡,除了占用内存,还会在C盘的缓存文件里出现临时缓存占用