我正在寻找无损 jpeg 操作的示例/博客文章/等(裁剪 n drop = 剪切和粘贴)。我知道有一个程序jpegtran
(http://jpegclub.org/jpegtran)它可以执行无损裁剪(在某些情况下),但似乎缺乏良好的文档。是的,我已经尝试过谷歌。
jpegtran
还有一个实验分支,允许在某些情况下无损删除(=粘贴),但其文档似乎更糟糕。
jpegtran 的怎么样drop
开关是实验性的吗?它有已知问题吗?人们使用它吗?
drop
看起来是一个非常酷且有用的功能,而且我觉得奇怪的是它已经实验了 10 多年......
是的,可以使用 PNG 等无损格式来进行此类操作,但我对 JPEG 特别感兴趣。
Thanks!
我花了太多时间试图解决这个问题,所以希望这对其他人有帮助。当搜索关于这个所谓的“crop 'n drop”功能的文档时,这个问题在谷歌上的排名相当高。
概述:
jpegtran -drop
允许您将块从一个 JPEG“拖放到”另一个 JPEG 上。
它仅替换现有块,不会扩展输入,因此您不能仅使用连接两个 JPEG-drop
.
但是,如果您提供-crop
如果参数大于输入图像,JPEGTran 将写出空白(灰色)块以扩展到所需的大小。你可以then use -drop
用您想要的图像替换这些新的空白块。
看我蹩脚的 ASCII 艺术示例:
-
你有两个图像,A.jpg
and B.jpg
,两者的尺寸均为256x256
。我们希望将这些并排连接起来以产生一个512x256
image.
+---------+ +---------+
| | | |
| A.jpg | | B.jpg |
| | | |
+---------+ +---------+
-
“取消裁剪”A.jpg
到所需的尺寸。这-crop
参数是标准 X11 几何符号:WIDTHxHEIGHT+X+Y 正 X/Y 值分别从顶部/左侧测量,负值从底部/右侧测量。
jpegtran -crop 512x256+0+0 -outfile O.jpg A.jpg
+---------+---------+
| \ |
| O.jpg \ (blank) |
| \ |
+---------+---------+
-
现在“放下”B.jpg
进入新的空白部分O.jpg
The -drop
参数仅使用原点 X/Y 坐标。
jpegtran -drop +256+0 B.jpg -outfile O.jpg O.jpg
+---------+---------+ +---------+
| \ | | |
| O.jpg \ o<========| B.jpg |
| \ | | |
+---------+---------+ +---------+
-
完毕!您现在有一个文件,O.jpg
,尺寸为512x256
,其中包含的串联内容A.jpg
and B.jpg
+-------------------+
| |
| O.jpg |
| |
+-------------------+
Notes:
-
A.jpg
and B.jpg
必须具有相同的高度。如果B.jpg
长高了,就会被剪掉。如果A.jpg
较高时,图像的右侧将有一个空白的填充条。
-
A.jpg
必须具有以完整块结束的宽度。 (通常意味着能被8整除?)
-
B.jpg
可以具有任意宽度,并且不必是块大小的倍数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)