Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Конвертация BMP в JPG...   Найти похожие ветки 

 
Max.66RUS ©   (2006-07-25 23:20) [0]

Дайте пожалуйста кто-нибудь исходник простейшей процедуры конвертации .BMP файла в .JPG файл. Заранее спасибо.


 
Handle   (2006-07-26 09:48) [1]

uses
  Jpeg;

var
 jpgImg: TJPEGImage;
begin
 if OpenDialog1.Execute = true then
 Image1.Picture.Bitmap.LoadFromFile(OpenDialog1.FileName);
 jpgImg := TJPEGImage.Create;
 jpgImg.SaveToFile(OpenDialog1.FileName + ".jpg");


 
Handle   (2006-07-26 09:51) [2]

То есть вот так я хотел сказать

uses
 Jpeg;

var
jpgImg: TJPEGImage;
begin
if OpenDialog1.Execute = true then
Image1.Picture.Bitmap.LoadFromFile(OpenDialog1.FileName);
jpgImg := TJPEGImage.Create;
jpgImg.Assign(Image1.Picture.Bitmap);
jpgImg.SaveToFile(OpenDialog1.FileName + ".jpg");


 
@!!ex ©   (2006-07-26 09:53) [3]

А зачем Image?
Не проще ли и дешевле грузить в TBitMap?


 
Max.66RUS ©   (2006-07-26 11:09) [4]

Большое спасибо. Всё работает. А можно ещё вопрос: Как в эту процедуру добавить параметр отвечающий за качество получаемого изображения? Мне нужно чтобы .JPG файл получался самого худшего качества...


 
Handle   (2006-07-26 12:07) [5]


> @!!ex ©   (26.07.06 09:53) [3]


Вы правы незачем

procedure TForm1.Button1Click(Sender: TObject);
var
 JpegIm:   TJpegImage;
 BmpImage: TBitMap;
begin
 if OpenDialog1.Execute = true then
 BmpImage:= TBitmap.Create;
 BmpImage.LoadFromFile(OpenDialog1.FileName);
 JpegIm := TJPEGImage.Create;
 JpegIm.Assign(BmpImage);
 JpegIm.CompressionQuality := 10;
 { например у меня при значении 10 размер фотки = 32KB при значении 90 размер = 250 KB
 всё конечно зависит от первоночального размера изображения}
 JpegIm.Compress;
 JpegIm.SaveToFile(OpenDialog1.FileName + ".jpg");
 BmpImage.Destroy;
 JpegIm.Destroy;
end;


 
Handle   (2006-07-26 12:09) [6]

TJPEGQualityRange = 1..100


 
antonn ©   (2006-07-26 12:25) [7]


> if OpenDialog1.Execute = true then

мдя...


 
Handle   (2006-07-26 12:33) [8]


> мдя...

А поподробней если можно


 
Sapersky   (2006-07-26 12:48) [9]

begin/end забыл. Без него по условию будет выполняться только строчка BmpImage:= TBitmap.Create;
И в условии не обязательно сравнивать с True/False, можно короче:
if OpenDialog1.Execute then ...


 
BadTester   (2006-07-26 12:49) [10]

uses  Jpeg;

 public
   { Public declarations }
   JPEG         :   TJPEGImage;
   Bitmap       :   TBitmap;
   JPEGWidth    :   Integer;
   JPEGHeight   :   Integer;
 end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
     if Form1.RadioButton1.Checked then
     begin
        JPEG   := TJPEGImage.Create;
        Bitmap := TBitmap.Create;
        try
           JPEG.Assign(Image1.Picture.Bitmap);
           Image1.Picture.Assign(JPEG);

        finally
           JPEG.Free;
           Bitmap.Free;
        end;
           Image1.Picture.SaveToFile(SaveDialog1.FileName + ".jpeg")
     end
     else
     begin
           Image1.Picture.SaveToFile(SaveDialog1.FileName + ".bmp");
     end;
 
     Close;
  end;
end;


 
Handle   (2006-07-26 13:10) [11]


> Sapersky   (26.07.06 12:48) [9]
> begin/end забыл. Без него по условию будет выполняться только
> строчка BmpImage:= TBitmap.Create;


Интересно почему у меня выполняется, я знаю наверно у меня Delphi круче.


>  BadTester   (26.07.06 12:49) [10]


Вы забыли написать про применение фильтров и изменение контрастности.

Ma
> x.66RUS ©   (26.07.06 11:09) [4]
> Как в эту процедуру добавить параметр отвечающий за качество
> получаемого изображения? Мне нужно чтобы .JPG файл получался
> самого худшего качества...


 
Плохиш ©   (2006-07-26 13:14) [12]


> Handle   (26.07.06 13:10) [11]
>
> > Sapersky   (26.07.06 12:48) [9]
> > begin/end забыл. Без него по условию будет выполняться
> только
> > строчка BmpImage:= TBitmap.Create;
>
>
> Интересно почему у меня выполняется, я знаю наверно у меня
> Delphi круче

Попробуйте нажать в опен-диалоге кнопку отменить.


 
Handle   (2006-07-26 13:18) [13]


> Плохиш ©   (26.07.06 13:14) [12]


Вы правы я немного погорячился и приношу свои извенения.


 
Handle   (2006-07-26 13:24) [14]


> Sapersky   (26.07.06 12:48) [9]


Вы правы я немного погорячился и приношу свои извенения.



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1170348097
Dreamse
2007-02-01 19:41
2007.03.25
Запуск программы от имени другого пользователя


1-1170086245
Express
2007-01-29 18:57
2007.03.25
Как присвоить событие кнопки созданной в библиотеке?


2-1172812629
Atanas
2007-03-02 08:17
2007.03.25
Закрытие формы


15-1172657664
Dush
2007-02-28 13:14
2007.03.25
книги .Net


2-1172755475
Fav
2007-03-01 16:24
2007.03.25
Задачка