|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
"bitmap image is not valid"-объясните поподробнее
Я новичок. зашел в дельфи 9, решил попробовать вывести на экран простую картинку (jpg).Использовал страндартные методы:
Переменная:=TBitMap.Create; Переменная.Loadfromfile('c:\\******************'); Form1.canvas.Draw(1,1,переменная); Поставил вот такого типа инструкцию на событие "onpaint", скомпилировал- ошибок нет.Запустил(из дельфи)-появилось сообщение "bitmap image is not valid" (изображение типа битмап повреждено) .И программу приходилось закрывать,т.к. картинка не показывалась.Я подумал, может и в самом деле повреждено изображение открыл через стандартную прогу винды-все открывается и через пейнт тоже.Попробовал другое изображение , тоже jpg- тоже самое. Размеры окон менял,менял событие (on click, on show...), пробовал отобразить на компоненте image- ничего не помогает.Потом создал через пейнт простой бмпшник- и он с той же моей прогой запустился как миленький, никакой проблемы.... Может кто-нибудь объяснить, почему дельфи не загружает вышеобозначенным методом jpg,gif,png и прочие bmp-похожие картинки?И если есть другой способ вывести их на канву, расскажите о нем плз. Последний раз редактировалось Excreman, 18.04.2009 в 23:06. |
#2
|
||||
|
||||
Укажите в списке модулей модуль Jpeg
Код:
uses JPEG; P.S. Можно попросить вас не ругаться Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. Последний раз редактировалось Karsh, 18.04.2009 в 22:38. |
#3
|
||||
|
||||
пост почистил , указал
Код:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls , JPEG; |
#4
|
||||
|
||||
Извиняюсь, недоглядел что у вас переменная типа TBitMap.
Используйте тип TImage или TJPEGImage Код:
var Jpg: TJPEGImage; begin Jpg:= TJPEGImage.Create; Jpg.LoadFromFile('путь к файлу'); Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#5
|
||||
|
||||
УРЯЯЯЯЯЯ! Заработало! Спасибо!! Все теперь отображается.Один только вопрос: тип TJpegImage подходит только для .jpg картинки или для каких-нибудь других картинок тоже подходит?Скажем. для .gif , .png и др.
|
#6
|
||||
|
||||
Класс TImage (из модуля ExtCtrls) должен понимать различные форматы изображений, при условии наличия соответствующих модулей.
Для jpg - модуль Jpeg (прилагается с Delphi). Bmp и, вроде как, gif не требуют спец. модуля (на счет gif могу ошибаться). Для png нужно искать модуль. Я на этом форуме выкладывал модуль для png, но не помню в какой теме... Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#7
|
||||
|
||||
А для PNG придется уже подключить PNGImage.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |