![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Конвертация BMP в JPG... [D7, WinXP]
Max.66RUS © (2006-07-25 23:20:00)Дайте пожалуйста кто-нибудь исходник простейшей процедуры конвертации .BMP файла в .JPG файл. Заранее спасибо.
Handle (2006-07-26 13:24:00) [1]
> Sapersky (26.07.06 12:48) [9]
Вы правы я немного погорячился и приношу свои извенения.
Handle (2006-07-26 13:18:00) [2]
> Плохиш © (26.07.06 13:14) [12]
Вы правы я немного погорячился и приношу свои извенения.
Плохиш (2006-07-26 13:14:00) [3]
> 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:10:00) [4]
> 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 файл получался
> самого худшего качества...
BadTester (2006-07-26 12:49:00) [5]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;
Sapersky (2006-07-26 12:48:00) [6]begin/end забыл. Без него по условию будет выполняться только строчка BmpImage:= TBitmap.Create;
И в условии не обязательно сравнивать с True/False, можно короче:
if OpenDialog1.Execute then ...
Handle (2006-07-26 12:33:00) [7]
> мдя...
А поподробней если можно
antonn (2006-07-26 12:25:00) [8]
> if OpenDialog1.Execute = true then
мдя...
Handle (2006-07-26 12:09:00) [9]
TJPEGQualityRange = 1..100
Handle (2006-07-26 12:07:00) [10]
> @!!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;
Max.66RUS (2006-07-26 11:09:00) [11]Большое спасибо. Всё работает. А можно ещё вопрос: Как в эту процедуру добавить параметр отвечающий за качество получаемого изображения? Мне нужно чтобы .JPG файл получался самого худшего качества...
@!!ex (2006-07-26 09:53:00) [12]А зачем Image?
Не проще ли и дешевле грузить в TBitMap?
Handle (2006-07-26 09:51:00) [13]То есть вот так я хотел сказать
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');
Handle (2006-07-26 09:48:00) [14]
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');