Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

Конвертация 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 вся ветка

Форум: "Media";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.041 c
15-1172894151
Nic
2007-03-03 06:55
2007.03.25
Уважаемая администрация


15-1172600124
Kerk
2007-02-27 21:15
2007.03.25
За что я люблю Perl


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


15-1172679784
koha
2007-02-28 19:23
2007.03.25
Идикатор (св.-диод) чтения жесткого диска горит постоянно


2-1172813999
vegarulez
2007-03-02 08:39
2007.03.25
Как можно задать маску * при поиске в следующем случае...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский