【问题标题】:How to convert an image to 1bit/px binary bitmap with ImageMagick or RMagick?如何使用 ImageMagick 或 RMagick 将图像转换为 1bit/px 二进制位图?
【发布时间】:2013-03-29 11:13:55
【问题描述】:

我正在寻找将图像(png、jpeg 等)转换为 1bit/px 位图图像的命令和选项(类似于在 Photoshop 中将其转换为位图时发生的情况)。请参阅下面的示例

我想在 Rails 应用程序中以编程方式执行此操作(例如 RMagick 或通过 ImageMagick)

以下作品:

convert yo.jpg -remap pattern:gray30 mono.gif

但与 phosotsohp 在这种情况下所做的相比,我想更好地了解正在发生的事情;考虑到here 解释的许多可能性(@roger_rowland 再次感谢链接)

最后我想要做的是有这个“效果”,并放大图像而不会产生模糊效果

【问题讨论】:

    标签: image-processing bitmap imagemagick rmagick


    【解决方案1】:

    -monochrome

    此选项使用一些智能抖动并生成非常明显的输出:

    convert -monochrome in.png out.png
    

    文档:http://www.imagemagick.org/Usage/quantize/#monochrome

    将其与更简单的 -threshold 50 转换进行比较:

    convert -threshold 50 in.png out.png
    

    这会丢失大部分图像。我们本可以使用更好的-threshold 值来改进它,但-monochrome 的美妙之处在于它更智能,而且通常无需我们猜测任何东西就可以工作。

    具体示例来自:https://www.nasa.gov/mission_pages/galex/pia15416.html

    wget -O orig.jpg http://www.nasa.gov/images/content/650137main_pia15416b-43_full.jpg
    # Downsize to 400 height to have a reasonable file size for upload here.
    convert orig.jpg -resize x400 in.jpg
    convert -monochrome in.jpg out.jpg
    convert -threshold 50 in.jpg threshold-50.jpg
    

    .jpg

    输出.jpg

    threshold-50.jpg

    相关问题:

    在 Ubuntu 19.10、ImageMagick 6.9.10 中测试。

    【讨论】:

    • 请注意,PNG 的 8 位并不是 PNG 1 位可能的最小深度。它们可以存储 2 种不同类型的 1 位 png(颜色类型 0 和 3)。
    【解决方案2】:

    也许您只需要查看涵盖量化和抖动的ImageMagick documentation,我认为这正是您要问的。是吗?

    好的 - 为确保在调整大小时不会模糊,您需要保留原始图像的副本(即在半色调或抖动等之前)。然后,当您需要调整大小时,对原始图像的副本进行调整大小(向上或向下,使用合适的插值器),然后在此调整大小的原始图像副本上重复单色转换以获得调整大小的单色。

    编辑 - 根据您的最新评论,尝试以下操作:

    convert yo.jpg -colorspace Gray -ordered-dither h4x4a -scale 2000x2000 mono.png 
    

    【讨论】:

    • 好吧,我真正想要的是放大图像而不使其模糊;并且(很抱歉)在photoshop中,位图转换的图像在调整大小时不会变得模糊,你保持这种“像素效果”
    • 有了这个>> convert yo.jpg -remap pattern:gray30 -transparent '#ffffff' -scale 2000x2000 mono.png 我几乎得到了我想要的(我被调整大小卡住了一会儿规模)
    • 但是,pattern:gray30 似乎更像是预定义的设置;希望控制更多这种效果
    猜你喜欢
    • 2012-02-07
    • 2011-08-05
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多