Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2013, 15:12   #11
Count of Toscany
Пользователь
 
Регистрация: 20.05.2012
Сообщений: 13
По умолчанию

Ой, а я подумал, что ты имел ввиду типо вообще в программе не использовать Имейдж или Пейнт Бокс, а только канву. А это касалось только рисования в памяти))

А как насчёт открытия разных типов файлов? По - моему нужно определять расширение и загружать файл в наперёд заготовленную переменную такого же типа. Но, я что-то не могу найти такой пример, с определением расширения.

Последний раз редактировалось Count of Toscany; 04.06.2013 в 15:13. Причина: неточность
Count of Toscany вне форума Ответить с цитированием
Старый 04.06.2013, 15:59   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А это касалось только рисования в памяти))
Да. Именно так.
Цитата:
А как насчёт открытия разных типов файлов?
Чпег ты подключил, значит нужно не TBitmap использовать а уже TJpegImage.
По поводу GIF ниче не скажу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2013, 17:57   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
По поводу GIF ниче не скажу.
GIF состоит из нескольких изображений, его надо открывать разбивать на фреймы и выбирать фрейм для рисования, или рисовать на всех сразу(сколько фреймов столько и буфферов), всем кроме рисования занимается TGIFImage,
Работу с png делает TPNGImage.
Человек_Борща вне форума Ответить с цитированием
Старый 04.06.2013, 18:37   #14
Count of Toscany
Пользователь
 
Регистрация: 20.05.2012
Сообщений: 13
По умолчанию

Кароче, сделал так.

Код:
var
  Form1: TForm1;
  bmp: TBitmap;
  jpeg: TJpegImage;
  gif: TGifImage;



procedure TForm1.N2Click(Sender: TObject);
begin
If OpenPictureDialog1.Execute then
  begin
  If ExtractFileExt(OpenPictureDialog1.FileName)='.bmp' then
    begin
    bmp.LoadFromFile (OpenPictureDialog1.FileName);
    Image1.Width:=bmp.Width;
    Image1.Height:=bmp.Height;
    Form1.Image1.Canvas.Draw(0,0,bmp);
    end;

  if ExtractFileExt(OpenPictureDialog1.FileName)='.jpg' then
    begin
    jpeg.LoadFromFile(OpenPictureDialog1.FileName);
    Image1.Width:=jpeg.Width;
    Image1.Height:=jpeg.Height;
    Form1.Image1.Canvas.Draw(0,0,jpeg);
    end;

  if ExtractFileExt(OpenPictureDialog1.FileName)='.gif' then
    begin
    gif.LoadFromFile(OpenPictureDialog1.FileName);
    Image1.Width:=gif.Width;
    Image1.Height:=gif.Height;
    Form1.Image1.Canvas.Draw(0,0,gif);
    end;
  end;
end;
Работает, но хотел бы узнать не слишком навороченно ли это? Можно сделать проще?

Последний раз редактировалось Stilet; 19.06.2013 в 15:47.
Count of Toscany вне форума Ответить с цитированием
Старый 04.06.2013, 21:19   #15
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Работает, но хотел бы узнать не слишком навороченно ли это? Можно сделать проще?
На самом деле это только скелет.
Нужно добавлять обработку ошибок.
s-andriano вне форума Ответить с цитированием
Старый 04.06.2013, 21:22   #16
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
На самом деле это только скелет.
Нужно добавлять обработку ошибок.
и приводить все в нижний либо верхний регистр. Иначе при сравнении .GIF и .gif будут проблемы.
Человек_Борща вне форума Ответить с цитированием
Старый 05.06.2013, 20:43   #17
Count of Toscany
Пользователь
 
Регистрация: 20.05.2012
Сообщений: 13
По умолчанию

Всё понял, мужики. Ща буду доделывать.

Ещё вопрос)) При сохранении файлов, как сделать так, чтобы расширение файла создавалось в зависимости от выбраного фильтра? Можно ли определить каждому фильтру своё расширение?

Реализовал рисование прямоугольника и эллипса таким способом, как в пэинте( при нажатии и движении мыши фигура растягивается и стягивается), используя свойство Pen.Mode со значением pmNotXor при нажатии и движении, и pmCopy при отпускании. так вот, прямоугольник рисуется норм, а вот эллипс появляется только при отпускании кнопки мыши, когда мышь двигается его не видно. Для обоих инструментов весь код одинаковый, кроме методов рисования. Должно ли так быть, или всё же эллипс должен тоже рисоваться при движении мыши?

Последний раз редактировалось Stilet; 19.06.2013 в 15:43.
Count of Toscany вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графический редактор в С++ Kalinin93 Помощь студентам 0 04.12.2011 12:17
графический редактор BOKUBOH Помощь студентам 0 30.03.2011 21:31
Графический редактор toxich Мультимедиа в Delphi 6 15.02.2010 19:28
Графический редактор... Alex2009 Мультимедиа в Delphi 12 18.04.2009 23:55
Графический редактор kommunist Общие вопросы .NET 1 13.01.2008 21:57