【问题标题】:Check to see if image is transparent [duplicate]检查图像是否透明[重复]
【发布时间】:2013-05-05 14:36:46
【问题描述】:

我目前正在使用一个函数来检查图像是否为特定大小,如果是,我将其转换为 jpeg(例如:如果是大 png,则转换为 jpeg)。

我想知道是否有一个 C# 函数可以让您检查透明度。如果图像是透明的,则保持透明,不要转换。

在正确方向上的任何帮助都会很棒。谢谢!

【问题讨论】:

  • 请展示一些源代码...你试过什么?什么不工作?
  • 这里有同样问题的另一个答案 -> stackoverflow.com/questions/2569538/… - 虽然速度不快...
  • 使用ImageResizer。我最近开始使用它,我永远不会再编写调整器/裁剪器功能(仍在逐步淘汰我的旧功能的过程中)。太棒了。

标签: c# asp.net .net asp.net-mvc-4


【解决方案1】:

我还没有测试过,但是也许这个 sn-p 会起作用:

System.Drawing.Image myImage; //Set source from image here
System.Drawing.Bitmap myBitmap = new System.Drawing.Bitmap(myImage);

for (xPixel = 0; xPixel <= (myBitmap.Width - 1); xPixel++) {
    for (yPixel = 0; yPixel <= (myBitmap.Height - 1); yPixel++) {
        if (myBitmap.GetPixel(xPixel, yPixel) == Drawing.Color.Transparent) {
            // Image contains transparency
        }
    }
}

【讨论】:

  • 感谢您的回复。我一定会在星期一开始工作时尝试 J. Hudler 和 MikeSmith 的建议。我还检查了提供的链接。谢谢大家的回答,我会“投票”一次,我可以测试一下!
  • 这太慢了!
  • 它也不会检测到部分透明度。您必须检查颜色的 alpha 分量以查看它是否小于 255。您还可以在单​​个命令中执行一系列初步检查,以查看图像是否有 alpha 通道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 2012-02-03
  • 2017-05-08
  • 2012-02-07
  • 1970-01-01
相关资源
最近更新 更多