2012-04-13 3 views
0

Я знаю, я знаю ... есть много других сообщений, подобных этому. Я не нашел то, что искал, давайте двигаться дальше.Неверная ошибка в конструкторе bitmap

Я сломать PDF в изображения с помощью this GhostScript implementation for C# и затем попытайтесь загрузить каждое изображение в Bitmap, иногда это дает мне Parameter is not valid error на этой линии:

[...]new Bitmap((Image)Image.FromFile(imagePath))[...] 


Image.FromFile(imagePath) успешно возвращает изображение (хотя я думаю, что он возвращает битмап), но тогда конструктор Bitmap дает мне ошибку. Что я делаю не так?

P.S.
Я привожу результат Image, потому что, когда я быстро смотрю результат Image.FromFile (...), он показывает его как System.Drawing.Bitmap (в любом случае, литой, без приведения, дает тот же результат) ,

+1

Вы уверены, что Image.FromFile на самом деле загружается что-то? Какую версию .net вы используете. Вы пытались просто сделать «новый битмап (imagePath)»? Есть конструктор в Bitmap, который принимает путь – Jaime

+0

Я использовал конструктор Bitmap, как вы предложили, и кажется, что он работает нормально. Я исправляю некоторые другие мелкие ошибки, а затем снова проверю. – PedroC88

+0

Напиши ответ, вот и все. – PedroC88

ответ

2

Попробуйте с помощью конструктора Bitmap, который принимает путь к изображению, как так:

var b = new Bitmap(imagePath); 
3

Вы не должны создать новое растровое изображение из растрового изображения, просто бросить ссылку на растровое изображение, которое вы уже:

Bitmap b = (Bitmap)Image.FromFile(imagePath); 

При создании нового растрового изображения из растрового изображения, загружаемые из файла , вы не получаете никакой ссылки на растровое изображение, которое вы загрузили. Поскольку вы не можете уничтожить это растровое изображение, вы оставите их для сборщика мусора, чтобы завершить его, и если это не произойдет достаточно быстро, у вас может закончиться нехватка памяти.