Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 06.04.2008, 16:13   #1
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
Репутация: 10
По умолчанию Работа с изображением

уважаемые програмисты подскажите:
нужно загрузить изображение (jpg, bmp) и дальше его обрабатывать(т.е. рисовать на нем, выделять куски и тп)
проблема в том, что если открыть изображение в Timage, дальше прога отказывается его обрабатывать, в TpaintBox нельзя загружать картинки из файла.
собственно может я туплю и можно работать с Timage, то если это так подскажите как это реализовать или возможно есть другие пути решения проблемы?
za4ot вне форума   Ответить с цитированием
Старый 06.04.2008, 16:33   #2
frodo
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 48
Репутация: 10
По умолчанию

Цитата:
Сообщение от za4ot Посмотреть сообщение
уважаемые програмисты подскажите:
нужно загрузить изображение (jpg, bmp) и дальше его обрабатывать(т.е. рисовать на нем, выделять куски и тп)
проблема в том, что если открыть изображение в Timage, дальше прога отказывается его обрабатывать, в TpaintBox нельзя загружать картинки из файла.
собственно может я туплю и можно работать с Timage, то если это так подскажите как это реализовать или возможно есть другие пути решения проблемы?
Впринципе можно обрабатывать через канвас!!! чем тебе этот вариант неподходит?
frodo вне форума   Ответить с цитированием
Старый 06.04.2008, 16:39   #3
SNUPY
Участник клуба
 
Регистрация: 15.02.2008
Адрес: Казань
Сообщений: 621
Репутация: 268

icq: 414710576
По умолчанию

Имхо не нужены всякие PaintBox'ы лучше самому на канве рисовать.

Вот пример работы с TbitMap
procedure TForm1.Button1Click(Sender: TObject);
Код:

var
 BitMap1 : TBitMap;
begin
  BitMap1 := TBitMap.Create;
  try
    BitMap1.LoadFromFile('C:\1.bmp');
    Canvas.Draw(12,12,BitMap1);
  finally
    BitMap1.Free;
  end;
end;

__________________
Помог? Ну так нажми на весы!

Последний раз редактировалось SNUPY; 06.04.2008 в 16:42.
SNUPY вне форума   Ответить с цитированием
Старый 06.04.2008, 18:07   #4
pu4koff
Профессионал
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,628
Репутация: 3613
По умолчанию

SNUPY, с jpeg теперь напиши как работать в таком случае
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Старый 06.04.2008, 18:37   #5
SNUPY
Участник клуба
 
Регистрация: 15.02.2008
Адрес: Казань
Сообщений: 621
Репутация: 268

icq: 414710576
По умолчанию

Цитата:
SNUPY, с jpeg теперь напиши как работать в таком случае
Признаю ошибся про JPEG и не подумал, но исправлюсь:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
  B:TPicture;
begin
  B:=TPicture.Create;
  if OpenPictureDialog1.Execute then
  B.LoadFromFile(OpenPictureDialog1.FileName);
  Canvas.Draw(0, 0 ,B.Graphic);
end;

__________________
Помог? Ну так нажми на весы!
SNUPY вне форума   Ответить с цитированием
Старый 06.04.2008, 22:37   #6
mutabor
Телепат с дипломом
Профессионал
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,931
Репутация: 1570

icq: 401708834
По умолчанию

za4ot, смотри в справке TBitmap, TJpegImage
Работа с изображением смотри TCanvas

Алгоритм такой: загружаешь файл в TBitmap или TJpegImage методом LoadFromFile, если это Jpeg то копируешь его в битмап, метод Assign. И дальше делаешь все что тебе надо через TBitmap.Canvas не забывая отображать его куда-то, напр. в имидж Image1.Canvas.Draw(0,0,твой битмап);
Создавать эти объекты и освобождать память когда они не нужны надо вручную:
MyBM:=TBitmap.Create;
MyBM.Free;
mutabor вне форума   Ответить с цитированием
Старый 08.04.2008, 00:52   #7
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
Репутация: 10
По умолчанию

спасибо за помощь

mutabor, если действовать как вы говорите, то получается чтото вроде этого:

Код:

procedure TForm1.Button2Click(Sender: TObject);
var
  Bm:TBitmap;
begin
  Bm:=TBitmap.Create;
  if OpenPictureDialog1.Execute then
  Bm.LoadFromFile(OpenPictureDialog1.FileName);
  // тут будет работа с битмапом
  Image1.Canvas.Draw(0, 0 ,Bm);
  Bm.Free;
end;

но возникает ошибка Incompatible types: 'TBitmap' and 'TGraphic'

согласно литературе тбитмап это потомок от тграфик, несовместимости типов не должно быть, в чем прична?

Последний раз редактировалось Stilet; 08.04.2008 в 07:57.
za4ot вне форума   Ответить с цитированием
Старый 08.04.2008, 08:00   #8
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

Цитата:
но возникает ошибка Incompatible types: 'TBitmap' and 'TGraphic'
Почему у меня ничего не возникает?
Stilet вне форума   Ответить с цитированием
Старый 08.04.2008, 09:43   #9
za4ot
Пользователь
 
Регистрация: 06.04.2008
Сообщений: 22
Репутация: 10
По умолчанию

версия дельфи 7.0(билд 4.453)

может я модули какие-то не подключил?
za4ot вне форума   Ответить с цитированием
Старый 08.04.2008, 10:01   #10
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,957
Репутация: 6832
По умолчанию

У меня D6 и я ничего не подключал дополнительно.
Stilet вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
робота с изображением Gorec Помощь студентам 3 28.05.2008 20:03
Работа с изображением Artem PHP 4 20.10.2007 15:56
Изменение инициативы при перекрывании одним изображением другого itisiam Общие вопросы Delphi 4 11.05.2007 23:33
Рабора с изображением Spec Общие вопросы Delphi 1 19.02.2007 22:25


18:48.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru