@Best_Loops

Как проверить наличие прозрачных пикселей?

У меня есть изображение png, мне нужно отсортировать их на те, у которых есть прозрачные пиксели и на те у которых их нет. Желательно на Python, но думаю он будет это делать 92726 лет, с учётом того, что у меня >10к изображений, поэтому думаю лучше будет на c#
  • Вопрос задан
  • 151 просмотр
Решения вопроса 2
veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство
Открываешь картинку
Bitmap bitmapInstance = (Bitmap)Image.FromFile("C:/.../img.png");


В параллельным цикле парсишь каждый пиксель в потоке
byte alphaValue = bitmapInstance.GetPixel(xPixel, yPixel).A;
if(alphaValue == 0) {
    // Пиксель прозрачный
}


Если попался прозрачный пиксель то завершаешь все параллельные циклы для текущей картинки, добавляешь ссылку на картинку в лист изображений с прозрачностью

После завершения обработки всех картинок уже спокойно копируешь/переносишь файлы с прозрачностью и без куда надо

Либо в добавляешь счетчик прозрачных пикселей и добавляешь лист по достижению какого-то порога
Ответ написан
@imageman
А посмотри вопрос
https://stackoverflow.com/questions/65615059/check...
Вроде то, что тебе нужно.

image = Image.open(file).convert('RGBA') 
alpha_range = image.getextrema()[-1]

if alpha_range == (255,255):
    print("image is not transparent")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
читать заголовки файлов, если pnga = есть , если просто png = быть не может
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы