![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Я новичок. зашел в дельфи 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. Можно попросить вас не ругаться ![]() Последний раз редактировалось Karsh, 18.04.2009 в 22:38. |
|
#3
|
||||
|
||||
|
пост почистил
, указалКод:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls , JPEG; .Может, программа не нашла юнит JPEG ![]() |
|
#4
|
||||
|
||||
|
Извиняюсь, недоглядел что у вас переменная типа TBitMap.
Используйте тип TImage или TJPEGImage Код:
var
Jpg: TJPEGImage;
begin
Jpg:= TJPEGImage.Create;
Jpg.LoadFromFile('путь к файлу'); |
|
#5
|
||||
|
||||
|
УРЯЯЯЯЯЯ!
Заработало! Спасибо!! Все теперь отображается.Один только вопрос: тип TJpegImage подходит только для .jpg картинки или для каких-нибудь других картинок тоже подходит?Скажем. для .gif , .png и др. |
|
#6
|
||||
|
||||
|
Класс TImage (из модуля ExtCtrls) должен понимать различные форматы изображений, при условии наличия соответствующих модулей.
Для jpg - модуль Jpeg (прилагается с Delphi). Bmp и, вроде как, gif не требуют спец. модуля (на счет gif могу ошибаться). Для png нужно искать модуль. Я на этом форуме выкладывал модуль для png, но не помню в какой теме... |
|
#7
|
||||
|
||||
|
А для PNG придется уже подключить PNGImage.
![]() |