【问题标题】:How to make icon with pink background transparent?如何使粉红色背景的图标透明?
【发布时间】:2010-09-19 04:14:10
【问题描述】:

我正在使用 Visual Studio 图标库 (VS2008ImageLibrary),有一些带有粉红色背景的 BMP 文件。我怎样才能让粉红色的背景变得透明?我可以使用什么软件来做到这一点?有免费的吗?

谢谢

【问题讨论】:

    标签: image image-manipulation icons


    【解决方案1】:

    我使用了 IrfanView 的批量转换工具。这仍然是一些工作,因为您必须单击每个图标上的粉红色区域,而不是仅仅将粉红色指定为透明颜色,但它确实有效。不过,使用 GDI+ 编写一个简单的转换工具会很容易,我也考虑过。

    请注意,即使您可以将它们用作透明图像,但不幸的是,当您在深色背景上渲染它们或将它们用作叠加层时,它们中的许多仍然有丑陋的边缘。如果您只想要其中的很少一部分,如果您认为您不会始终拥有明亮的背景,请考虑单独调整它们。

    【讨论】:

    • 正如我的问题评论中所说,+1 为您的批量建议
    • 谢谢。这种方法仍然不是很好,但是用它转换 VSObject_* 图标只需要两分钟,所以不需要在这个一次性工作中投入太多工作:) 作为旁注,这样的事情也是使用 IrfanView 处理单个图像非常容易,而不仅仅是批量转换。
    【解决方案2】:

    您可以try it online,前提是您可以先将 bmp 转换为 gif。

    或者您可以获取PAINT.Net(免费软件),并按照此video instructions 应用透明背景。

    【讨论】:

    • 您并不想手动使用数百个图标。
    • 不,我不想那样做。但话又说回来,这不完全是问题。不过,为您的批量建议 +1。
    【解决方案3】:

    您可以使用 ImageMagick 转换:

    convert input.png -transparent magenta  output.png
    

    顺便说一句,它不是粉红色,而是洋红色。

    【讨论】:

      【解决方案4】:

      虽然我不知道现代 .NET 对您问题的回答,但值得注意的是这些具有洋红色背景的位图的历史原因:

      在只有 Win32 的日子里,有一些通用控件(如工具栏和 ListView)将这些位图和一种颜色视为透明,然后将该颜色呈现为透明。我想,在幕后,他们使用了像TransparentBtl 这样的函数。

      【讨论】:

      • 实际上,即使在今天,我仍然在许多库中看到了对这一概念的支持,尽管它应该逐渐消失,因为到处都支持 alpha 透明度。
      【解决方案5】:

      我知道这与 Form.TransparencyKey 有关 但我不知道那个粉红色到底是什么,你必须知道确切的 RGB/系统或 Web 颜色。

      如果你知道请分享我们

      【讨论】:

      • Color.Magenta 但是当你这样做时透明度看起来很糟糕,因为你仍然可以看到粉红色位的轮廓
      猜你喜欢
      • 2011-07-06
      • 2013-01-13
      • 2011-09-12
      • 1970-01-01
      • 2014-01-03
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多