Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 将灰度图像转换为渐进式黑色加透明度?_Shell_Raster_Gdal_Imagemagick Convert - Fatal编程技术网

Shell 将灰度图像转换为渐进式黑色加透明度?

Shell 将灰度图像转换为渐进式黑色加透明度?,shell,raster,gdal,imagemagick-convert,Shell,Raster,Gdal,Imagemagick Convert,我有一个灰度图像,我希望从中把所有的灰色像素转换成半透明像素,把白色像素转换成透明像素 如何通过shell处理灰度光栅图像? 输入: 输出(此处通过Gimp生成): 通过GUI的当前Gimp流程: GIMP 2.6>加载着色浮雕图像(..shaded.tif:为灰度) 或者阴影浮雕的屏幕截图(屏幕截图:RGB颜色) 强制它为RGB:Gimp>图像>模式>RGB,单击 删除灰色:颜色>“颜色到alpha”弹出窗口>取消选中“预览”,单击水平颜色矩形>“颜色到alpha颜色选择器”弹出窗口>右

我有一个灰度图像,我希望从中把所有的灰色像素转换成半透明像素,把白色像素转换成透明像素

如何通过shell处理灰度光栅图像?

输入:

输出(此处通过Gimp生成):


通过GUI的当前Gimp流程:

  • GIMP 2.6>加载着色浮雕图像(..shaded.tif:为灰度) 或者阴影浮雕的屏幕截图(屏幕截图:RGB颜色)
  • 强制它为RGB:Gimp>图像>模式>RGB,单击
  • 删除灰色:颜色>“颜色到alpha”弹出窗口>取消选中“预览”,单击水平颜色矩形>“颜色到alpha颜色选择器”弹出窗口>右下角,单击图标眼睛滴管>选择要删除的颜色(平面中的一些灰色像素)>验证
  • 删除其他颜色(白色、黑色背景)>相同
  • 文件>另存为>项目名称\u relief\u whitened.png(保持透明度)
  • [注意:因此图像显示,图像背景CSS很难看到文件之间的细微差别。]

    给定以下灰度
    input.png

    1a。要使此图像的黑色像素透明并线性保持白色像素不变,请运行以下命令:

    convert source.png -alpha copy -fx '#fff' result.png
    
    1b。要使白色像素透明并线性保持黑色,请使用:

    convert source.png -alpha copy -channel alpha -negate +channel result.png
    
    手册:

    • convert–是ImageMagic命令(几种命令之一)
    • source.png–是灰度源图像
    • -alpha copy–它将上一个文件的内容复制到alpha通道中
    • -通道alpha–它指定以下操作符只应影响alpha通道
    • -否定–它反转当前通道(通道alpha)
    • +频道–指定以下运算符仅影响相反的频道。对于我们来说,它将焦点从alpha通道切换到颜色通道。(颜色通道最初是默认的)
    • -fx'#000'–用黑色像素替换当前频道(对于我们来说,颜色频道)内容,因此最终结果实际上完全取决于alpha频道。如果不包括,生成图像中的所有半透明像素将保留颜色,从#FFF(白色)到#000(黑色)
    1b的结果:

    清除平原: 再进行一次处理,可以消除大部分平坦平原,这些平原出现在灰色(
    #DDDDDD
    )周围,不透明度约为50%。这可以通过以下方式实现:

    convert input.png -fuzz 8% -transparent "#DDDDDD" grey_no.8pc.png
    convert grey_no.8pc.png -alpha copy -channel alpha -negate +channel result.grey_no.png
    
    因此,平原避免了无用的
    #DDDDDD,不透明度:50%
    覆盖

    另请参见:

  • ImageMagick选项:

  • 你有一些关键词可以推荐。怎么样:@Scony:这似乎是一个很好的发现!经过一段艰难的时间,我终于找到了可靠的答案。我认为您可以使用
    -evaluate set 100%
    而不是
    -fx'#fff'
    ,它的运行速度大约快4倍。