Я ищу способ быстро определить, имеет ли изображение PNG прозрачные функции. Таким образом, полупрозрачна ли какая-либо часть изображения или отображает фон всегда. Кто-либо каждый знает простой способ обнаружить это?
ОБНОВЛЕНИЕ: хорошо, есть ли менее сложный путь затем для вытаскивания спецификации PNG и взламывающий код?
Почему бы просто не перебрать все пиксели изображения и не проверить их альфа-значения?
bool ContainsTransparent(Bitmap image)
{
for (int y = 0; y < image.Height; ++y)
{
for (int x = 0; x < image.Width; ++x)
{
if (image.GetPixel(x, y).A != 255)
{
return true;
}
}
}
return false;
}
Я до сих пор не совсем понимаю вопрос, но если вы просто хотите проверить, может ли данное изображение использовать функции прозрачности, вы можете использовать этот код:
Image img = Image.FromFile ( "...", true );
if ( (img.Flags & 0x2) != 0)
{
}
Хотя это не поможет вам определить, действительно ли данный файл png использует прозрачные функции, он укажет, что он имеет тип цвета 4 или 6 (оба поддерживают прозрачность) в соответствии со спецификацией файла png.