Рейтинг@Mail.ru Решил вот написать маленькую программку
Решил вот написать маленькую и удобную программку. Зачем иметь Corel или Fotoshop, когда вы используете несложные картинки в своих сайтах и программах, которые можно нарисовать в Паинте или Word-е. Одна проблема - зто достаточно громоздкий формат получаемых изображений.

Вверху вы видите внешний вид программки, которая преобразовывает картинки формата BMP в формат JPEG. Картинка, которую вы видите выше, была получена из файла BMP путем компрессии со значением 50. Конечно, немного подпорчена, но размер файла сократился с 321,000 байт (BMP) до 19,000 байт (JPEG), что немаловажно для передачи данных по Internet. Кроме того, с помощью объекта управления можете выставить подходящую для вас величину сжатия и получить картинку большего размера и высокого качества.

ниже привожу полный код программы:

BHИМАНИЕ: КОЕ КАКИЕ ОБЪЕКТЫ Я ОБОЗНАЧАЮ НЕСТАНДАРТНЫМИ ИМЕНАМИ, ТАК ЧТО СМОТРИТЕ СПЕЦИФИКАЦИЮ КОМПОНЕНТОВ В ЗАГОЛОВКЕ ФАЙЛА. НАПРИМЕР SPD - ЭТО SavePictureDialog, LPD - LoadPictureDialog.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes,jpeg, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ExtDlgs, Buttons, Spin;

type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
Button2: TButton;
Button3: TButton;
Button4: TButton;
BitBtn1: TBitBtn;
OPD: TOpenPictureDialog;
SPD: TSavePictureDialog;
SpinEdit1: TSpinEdit;
Label1: TLabel;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
MyJpeg: TJpegImage;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin
SpinEdit1.Value := 50;
if OPD.Execute then Image1.Picture.LoadFromFile (OPD.FileName);
Image1.Stretch :=True;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
MyJpeg := TJpegImage.Create ;
MyJpeg.CompressionQuality :=50;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if SPD.Execute then
begin
MyJPEG.Assign (Image1.Picture.BitMap);
MyJPEG.CompressionQuality := 100 - SpinEdit1.Value ;
MyJpeg.Compress ;
MyJpeg.SaveToFile (SPD.FileName+'.jpeg');
end;
end;

end.

Вот и весь код. Думаю, и комментировать нечего. Работает -сам пользуюсь. Будут вопросы, пишите мне. Может чем -то интересненьким поделитесь.

Используются технологии uCoz