@gd1xza

Как работает этот png фильтр sub?

файл картинка пнг 3x3 со всеми разными цветами
в блок idat закодировано 3 линии развертки 1ая линия имеет фильтр 1 (sub)
цвета закодированые в пнг через фотошоп rgb (0,162,232) (185,122,87) (34,177,76)
вот описание фильтра
код
def Raw(i,d):
    if i < 0:
        return 0
    else:
        return d[i]
def unsub(d):    
    dd = b""
    for i,b in enumerate(d):
        bpp = 4
        dd += bytes([b + Raw(i - bpp,d)])
    return dd

где d - байтовая строка линия развертки без указания фильтра
d равно 00a2e8ffb9d86f006937f500 (в hex)
длинна 12
3 пикселя по 4 канала р г б а
на 2 байте 2 пикселя выходит эта ошибка:
dd += bytes([b + Raw(i - bpp,d)])
ValueError: bytes must be in range(0, 256)

тоесть там число получилось больше но как если я все по спекам делал а как так то
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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