gpt4 book ai didi

image-processing - JPEG 的无损裁剪 n 滴(剪切和粘贴)

转载 作者:行者123 更新时间:2023-12-04 02:50:01 25 4
gpt4 key购买 nike

我正在寻找无损 jpeg 操作的示例/博客文章/等(crop n drop = cut and paste)。我知道有一个程序jpegtran (http://jpegclub.org/jpegtran) 可以执行无损裁剪(在某些情况下),但似乎缺乏好的文档。是的,我试过谷歌。
jpegtran也有一个实验分支,允许在某些情况下无损删除(= 粘贴),但文档似乎更糟。

jpegtran的drop怎么样?开关是实验性的?它有已知问题吗?人们使用它吗?
drop似乎是一个非常酷和有用的功能,我觉得奇怪的是它已经实验了 10 多年......

是的,可以使用无损格式(例如 PNG)进行此类操作,但我对 JPEG 特别感兴趣。

谢谢!

最佳答案

我花了太多时间试图弄清楚这一点,所以希望这对其他人有所帮助。当在这个所谓的“crop 'n drop”功能上搜索文档时,这个问题在谷歌上非常高。

概述:
jpegtran -drop允许您将块从一个 JPEG 中“丢弃”到另一个 JPEG 上。

它仅替换现有块,不会扩展输入,因此您不能仅使用 -drop 连接两个 JPEG。 .

但是,如果您提供 -crop如果参数大于输入图像,JPEGTran 将写出空白(灰色)块以扩展到所需大小。然后您可以使用 -drop用您想要的图像替换这些新的空白块。

看我蹩脚的 ASCII 艺术示例:

  • 您有两张图片,A.jpgB.jpg ,两者的尺寸都是 256x256 .我们想并排连接这些以产生 512x256图片。
    +---------+  +---------+
    | | | |
    | 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 中的新空白部分-drop参数仅使用原点 X/Y 坐标。
    jpegtran -drop +256+0 B.jpg -outfile O.jpg O.jpg

    +---------+---------+ +---------+
    | \ | | |
    | O.jpg \ o<========| B.jpg |
    | \ | | |
    +---------+---------+ +---------+
  • 完毕!您现在只有一个文件,O.jpg ,尺寸为 512x256 , 包含 A.jpg 的连接内容和 B.jpg
    +-------------------+
    | |
    | O.jpg |
    | |
    +-------------------+

  • 笔记:
  • A.jpgB.jpg必须有相同的高度。如 B.jpg更高,它会被切断。如 A.jpg更高,图像的右侧将有一个空白的填充条。
  • A.jpg必须具有以完整块结束的宽度。 (通常表示可以被 8 整除?)
  • B.jpg可以有任何宽度,并且不必是块大小的倍数。
  • 关于image-processing - JPEG 的无损裁剪 n 滴(剪切和粘贴),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959186/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com