Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2010, 14:52   #1
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
Восклицание как обрезать изоображение в формате jpeg

как обрезать изоображение в формате jpeg - как это сделать?
скиньте пожалуйста исходник.
Изображения
Тип файла: jpg 1.jpg (157.0 Кб, 329 просмотров)
Тип файла: jpg 2.jpg (168.2 Кб, 330 просмотров)
Тип файла: jpg 3.jpg (93.6 Кб, 149 просмотров)
Дайте мне власть и я переверну ваш мир!...
KWN, lnc вне форума Ответить с цитированием
Старый 07.03.2010, 15:45   #2
SalasAndriy
Форумчанин Подтвердите свой е-майл
 
Аватар для SalasAndriy
 
Регистрация: 01.11.2007
Сообщений: 157
По умолчанию

подключаете модуль 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;

...
Вот... Надеюсь хоть чем-то помог...
SalasAndriy вне форума Ответить с цитированием
Старый 07.03.2010, 16:11   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Код:
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;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 07.03.2010, 22:10   #4
KWN, lnc
Delphi 7
Форумчанин
 
Аватар для KWN, lnc
 
Регистрация: 10.02.2009
Сообщений: 354
По умолчанию

народ. а как это сделать именно мышкой. типа как в Photoshop или в IrfanView
Дайте мне власть и я переверну ваш мир!...
KWN, lnc вне форума Ответить с цитированием
Старый 08.03.2010, 13:16   #5
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

OnMouseDown, OnMouseUp, OnMouseMove
ZuBy вне форума Ответить с цитированием
Старый 08.03.2010, 13:52   #6
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

как-то так:
Код:
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, либо по кнопке, записывай фрагмент в файл.
x128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как текстовый файл в формате word 2007 переделать в файл в формате ZAY JULIA Microsoft Office Word 13 09.06.2010 19:43
Как конвертировать Jpeg > PDF XerSon Помощь студентам 4 10.12.2009 20:25
Как обрезать строку между двумя словами vitaleg PHP 3 28.07.2009 20:32
Как запустить игру в формате 16:10 roma174 Свободное общение 1 08.03.2009 15:44
Image1 и Rgn.. как обрезать? Yogik™ Помощь студентам 7 28.09.2007 17:07