Последние записи
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
23rd
Май
как обрезать изоображение в формате jpeg
Posted by obzor under Delphi, Архив, Пост-обзор
как обрезать изоображение в формате jpeg — как это сделать?
скиньте пожалуйста исходник.
подключаете модуль Jpeg
дальше создаёте объект TJPEGImage
вот примерно так:
...
var
JPG: TJPEGImage;
BMP: TBitmap;
begin
JPG := TJPEGImage.Create;
JPG.LoadFromFile('Имя и путь в вашему файлу с изображением JPEG');
BMP := TBitmap.Create;
BMP.Assign(JPG);
// тут работаете с изображением так как вам нужно
// вырезаете из него то что нужно...
// и потом сохраняете обратно в формат JPEG
JPG.Assign(BMP);
JPG.SaveToFile('Имя файла куда сохранить изображение в формате JPEG');
end;
...
Вот… Надеюсь хоть чем-то помог…
var
JPG: TJPEGImage;
BMP, tmp: TBitmap;
begin
JPG := TJPEGImage.Create;
JPG.LoadFromFile('Имя и путь в вашему файлу с изображением JPEG');
BMP := TBitmap.Create;
BMP.Assign(JPG);
tmp:=TBitmap.Create; //временный битмап
tmp.Width:=нужная ширина; //ширина обрезанной картинки
tmp.Height:=высота; //высота обрезанной картинки
// тут работаете с изображением так как вам нужно
// вырезаете из него то что нужно...
tmp.CopyRect(
tmp.Canvas.ClipRect,
BMP.Canvas,
Rect(Отступ слева, Отступ сверху, tmp.Width, tmp.Height));
// и потом сохраняете обратно в формат JPEG
jp.CompressionQuality:=90; //можно менять качество сжатия
JPG.Assign(tmp);
JPG.SaveToFile('Имя файла куда сохранить изображение в формате JPEG');
JPG.Free;
tmp.Free;
BMP.Free;
end;
народ. а как это сделать именно мышкой. типа как в Photoshop или в IrfanView
как-то так:
var
draw: boolean=false;
drect: TRect;
...
procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg:=TJpegImage.Create;
jpg.LoadFromFile('имя файла');
image1.Picture.Bitmap.Assign(jpg); //TImage на форме
jpg.Destroy;
end;
//обработчики TImage
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
draw:=true;
drect:=Rect(x,y,x,y);
TImage(Sender).Canvas.DrawFocusRect(drect);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if draw then begin
TImage(Sender).Canvas.DrawFocusRect(drect);
drect.Right:=x;
drect.Bottom:=y;
TImage(Sender).Canvas.DrawFocusRect(drect);
end;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
draw:=false;
TImage(Sender).Canvas.DrawFocusRect(drect);
end;
далее либо в Image1MouseUp, либо по кнопке, записывай фрагмент в файл.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)