У меня в модели есть поле ImageField. Я использую PIL При валидации поля когда выполянется
trial_image = Image.open(StringIO(f.content))
trial_image.load()
появляется исключение raise IOError("cannot read interlaced PNG files"). PIL не поддерживает interlaced PNG. Я хочу сделать проверку если файл не interlaced PNG, то для него выполнять loda(), иначе не выполнять. Можно ли как то определить файл interlaced PNG или нет?
Угу, проверка есть. Надо сделать Image.open и если в Exception будет "cannot read interlaced PNG files", значит он interlaced =)
я решила эту проблему немного по другому. Если сделать Image.info, то это вернет словарь. Если в этом словаре будет ключ 'interlaced' со значением 1, то значит картинка interlaced.
Ага, тоже неплохо. Кстати, мне из-за этого не нравится PIL, у неё есть несколько багов, на которые натыкаешься в процессе работы с ней. Например, вышеописанный или ещё с палитрой gif у PIL проблемы.