2015-08-22 2 views
5
$ ghci 
GHCi, version 7.10.1: http://www.haskell.org/ghc/ :? for help 
Prelude> import Codec.Picture 
Prelude Codec.Picture> Right pic <- readImage " smiley.bmp " 
&ltinteractive>: out of memory (requested 4296015872 bytes) 

smiley.bmp составляет менее 300 байт. Почему у меня закончилась память?Сочные пиксели жалуются на нехватку памяти

+1

Что находится в файле 'smiley.bmp'? Возможно, он претендует на огромную высоту и ширину? – Cirdec

+0

@Cirdec Это всего 9 на 9 пикселей. Вы можете щелкнуть ссылку выше, если хотите ее изучить. – PyRulez

+2

Это действительно хороший вопрос. Меня не волнует актуальная проблема, но только полнота, гиперссылки и все такое. Очень впечатляюще. Кроме того, вы пробовали DevIL? –

ответ

4

Это не действительный файл растрового изображения, и JuicyPixels не проверяет ошибки входов, как должно. Обратите внимание на размеры ...

% file smiley.bmp 
smiley.bmp: PC bitmap, Windows 3.x format, 8 x -8 x 24 
+0

Что? Плохой смайлик! – PyRulez

+0

Да, это было так. Он отлично работает с другим изображением. – PyRulez

+1

Растровое изображение действительно. Согласно MSDN отрицательная высота означает, что начало координат находится в верхнем левом углу. – Alex

5

Это ошибка в juicypixels, где растровые изображения с отрицательной высотой не интерпретируются должным образом.

Отрицательная высота должна означать, что начало координат находится в верхнем левом углу, а не в нижнем левом углу.

Я открыл новый отчет об ошибке здесь: https://github.com/Twinside/Juicy.Pixels/issues/105

Сочных пиксели не поддерживают растровые особенно хорошо. Существует ряд других ограничений. (см. https://github.com/Twinside/Juicy.Pixels/issues/96)

+1

Теперь он исправлен. Они даже сделали смайлик тестовым. – PyRulez

Смежные вопросы