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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2009, 12:29   #1
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию Как image сохранить в файл ?

Я на Image вывожу какие то графические данные подскажите как можно сохранить их в графическом файле jpg и bmp.
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 15.03.2009, 12:56   #2
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Для JPG:
Код:
Image1.Picture.SaveTofile('C:\1.jpg');
Для BMP:
Код:
Image1.Picture.SaveTofile('C:\1.bmp');
Crivel вне форума Ответить с цитированием
Старый 15.03.2009, 18:53   #3
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

Изоброжения получаются большого размера как можно их сжать ?
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 16.03.2009, 09:53   #4
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от juan666777 Посмотреть сообщение
Изоброжения получаются большого размера как можно их сжать ?
Большого размера это - высота и ширина , или вес ?

если высота и ширина

Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
BitMap : TBitMap;
begin
 BitMap := TBitMap.Create;
 BitMap.Width := 200; // Ставиш размеры желаймой картинки
 BitMap.Height := 200; // Ставиш размеры желаймой картинки
 BitMap.Canvas.CopyRect(BitMap.Canvas.ClipRect,Image1.Canvas,Image1.Canvas.ClipRect);
 BitMap.SaveToFile('E:\1.bmp');
 BitMap.Free;
end;
если вес - то сохраняй в jpg

Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
 SaveJpeg: TJpegImage;
 BitMap : TBitMap;
begin
  SaveJpeg := TjpegImage.Create;
  BitMap := TBitMap.Create;
  BitMap.Width := 200; // Ставиш размеры желаймой картинки
  BitMap.Height := 200; // Ставиш размеры желаймой картинки
  BitMap.Canvas.CopyRect(BitMap.Canvas.ClipRect,Image1.Canvas,Image1.Canvas.ClipRect);
  SaveJpeg.Assign(Bitmap);

  SaveJpeg.CompressionQuality := 100; // От этого значения тоже зависит вес, но и качество
  SaveJpeg.PixelFormat := jf24Bit;
  SaveJpeg.Compress;

  SaveJpeg.SaveToFile('E:\1.jpg');
  BitMap.Free;
  SaveJpeg.Free;
end;

Последний раз редактировалось lexaltd; 16.03.2009 в 10:06.
lexaltd вне форума Ответить с цитированием
Старый 16.03.2009, 16:59   #5
juan666777
Пользователь
 
Аватар для juan666777
 
Регистрация: 24.01.2009
Сообщений: 84
По умолчанию

Большое спасибо
Evil Skull
juan666777 вне форума Ответить с цитированием
Старый 04.11.2009, 17:19   #6
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

Цитата:
Image1.Picture.SaveTofile('C:\1.jpg ');
А не подскажете, как это реализовать через SaveDialog?
grey вне форума Ответить с цитированием
Старый 04.11.2009, 17:58   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Crivel Посмотреть сообщение
Для JPG:
Код:
Image1.Picture.SaveTofile('C:\1.jpg');
Для BMP:
Код:
Image1.Picture.SaveTofile('C:\1.bmp');
Э-э-э нет, не все так просто.
Цитата:
Изображения получаются большого размера как можно их сжать ?
Вот именно. Для этого:

Преобразование bmp в jpg

Для того, чтобы преобразовать картинку в bmp-формате в jpg-формат вам необходимо подключить к программе (в uses) модуль jpeg.
Затем вам надо объявить переменную типа tjpegimage.
Ну, а затем проделать следующие действия:

Например при нажатии кнопки создадим jpeg-файл из bmp-файла. Обработчик события onclick может иметь такой вид:

Код:
procedure tform1.button1click(sender: tobject);
var jpg:tjpegimage; {создаем переменную}
begin
image1.picture.loadfromfile('c:\windows\1stboot.bmp'); {здесь загружаем какую-нибудь картинку, советую вам изменить имя картинки приведенное в этом примере!}
jpg:=tjpegimage.create; {создаем экземпляр объекта}
jpg.assign(image1.picture.graphic); {присваиваем переменной jpg картинку, хранящуюся в image'e}
jpg.compressionquality:=75; {устанавливаем параметры качества. Должно быть от 1 до 100. Если 100, то качество лучшее, 1 худшее}
jpg.compress; {производим сжатие данных картинки}
jpg.savetofile('d:\1.jpg'); {и сохраняем уже готовую jpg картинку в файл}
jpg.free; {уничтожаем объект, чтобы не засорять память!}
end;
mihali4 вне форума Ответить с цитированием
Старый 04.11.2009, 19:27   #8
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

но а как всё же сохранить через SaveDialog?
grey вне форума Ответить с цитированием
Старый 04.11.2009, 19:33   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Как и обычно...
Просто каждую из процедур выполняем по условию
If SaveDialog.Execute then
и подставляем имя файла из SaveDialog...
mihali4 вне форума Ответить с цитированием
Старый 04.11.2009, 19:47   #10
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

Да, спасибо большое, разобрался:
Код:
If SaveDialog1.Execute then Image2.Picture.Graphic.SaveToFile(SaveDialog1.Filename)
grey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сохранить из memo в файл? RAVAL)) Общие вопросы Delphi 8 15.01.2013 18:09
Полностью сохранить форму в файл как .dfm anton14 Общие вопросы Delphi 5 16.10.2010 18:42
Как сохранить файл заранее указывая папку? highklass Общие вопросы Delphi 2 09.06.2008 10:58
как сохранить строчки в TXT файл Ярослав Помощь студентам 2 17.05.2008 18:43