Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
Snickbw Member Откуда: Сообщений: 443 |
Ситуация: всплыла задача распечатать картинки jpeg из БД (1 картинка на 1 листе) их порядка 5 000 шт. Решил автоматизировать процесс, нашёл кучу примеров например такой:
Проблема: Вроде всё компилиться, ошибок нет, НО при выполнении программы в строке (Width / Height) деление на ноль, т.к. Image.Picture.Bitmap.Height и Image.Picture.Bitmap.Width всегда оба равны 0. Какие и как ни грузи в Image файл jpeg (руками или программно или ещё как). Вопрос: Что за косяк с Image.Picture.Bitmap.Height и Image.Picture.Bitmap.Width ? З.Ы. пробовал XE2 и XE5 результат один и тот же. Сообщение было отредактировано: 17 фев 21, 09:20 |
|
17 фев 21, 09:27 [22282053] Ответить | Цитировать Сообщить модератору |
iStrannik Member Откуда: Сообщений: 145 |
Все работает проверил в XE5.
|
|
17 фев 21, 09:50 [22282059] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14191 |
Snickbw, это одна из самых дебильных "фич" VCL. Если в Picture НЕ TBitmap, то запрос Image.Picture.Bitmap удаляет все содержимое. У тебя, насколько я понимаю, там TJPEGImage. Оперируй только Picture.Graphic. А еще лучше - выкинь весь VCL код для графики и пользуй GDI+ |
17 фев 21, 10:00 [22282063] Ответить | Цитировать Сообщить модератору |
Snickbw Member Откуда: Сообщений: 443 |
Да, теперь въехал, что напрямую JPEG не покатит.
Согласен, это выход, налету JPEG в BITMAP |
||||||||
17 фев 21, 11:22 [22282105] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14191 |
Snickbw, Конверсия тут не нужна, равно как и куча другой фигни. Просто Printer.Canvas.StretchDraw(..., Image.Graphic); А лучше шаблон FR сделать c полем рисунка. В таком виде у тебя рано или поздно кривизна при печати проявится. |
17 фев 21, 12:45 [22282173] Ответить | Цитировать Сообщить модератору |
Все форумы / Delphi | ![]() |