裁剪掉透明像素但保留偏移量

Posted

技术标签:

【中文标题】裁剪掉透明像素但保留偏移量【英文标题】:Cropping away transparent pixels but preserving the offset 【发布时间】:2012-11-03 05:31:57 【问题描述】:

我有一组 .png 文件,其中大部分图像是透明的(alpha 通道),但中间有图像(非透明像素)需要提取。

我需要做的是将图像裁剪为仅不透明的像素,但我需要知道从左侧和底部裁剪了多少像素,因此在渲染裁剪后的图像时,它的位置可以调整回大图的样子。

有没有办法使用 ImageMagick 进行裁剪并获得 x,y 偏移?我知道如何裁剪 .png 文件,但大图像中不透明图像的位置丢失了,我需要此信息。

似乎我可以使用 PIL 和 python 来做到这一点,但是在 Mac 上安装 PIL 被证明是一种令人毛骨悚然的体验。我花了几个小时试图摆脱 jpeg_resync_to_restart 错误,似乎每个人都有不同的解决方案对他们有用,但没有一个对我有用......所以我放弃了 PIL。

ImageMagick 已安装并正在运行。

我可以从 bash 或 python 脚本调用另一组工具来满足我的需要吗?

这不仅仅是我需要执行的一次性操作,因此我需要一个可以在源 .png 文件更改时反复运行的脚本。

谢谢。

【问题讨论】:

【参考方案1】:

您提到在 Mac 上安装 PIL 时遇到问题。您是否考虑过使用 Macports?

【讨论】:

是的,我什么都试过了。我正在运行 python 2.7 我试过 MacPorts,我试过从源代码安装它,我试过 fink。似乎问题在于 PIL 动态链接到错误的 jpeg 库。我已经尝试安装 jpeg.v8c,但我仍然收到错误消息。我真的不能开始删除库,希望这会起作用,因为它可能会破坏其他东西并使我处于更糟糕的境地。

以上是关于裁剪掉透明像素但保留偏移量的主要内容,如果未能解决你的问题,请参考以下文章

根据元素当前偏移量更改不透明度

如何使用 contentEditable 获取 iframe 中当前插入符号位置的像素偏移量

如何计算偏移量以绘制到画布中应用了比例变换的最近像素?

SwiftUI - 缩放、缩放和裁剪图像

滚动到带有偏移量的 div ID

Bitmap.createBitmap(bitmap, x,y,width,height) 的正确偏移