Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > соединить два изображения


Автор: IGR 17.8.2007, 15:07
Допустим есть 2 загруженых изоброжения.
Как их обьединить в одно изоброжение?
подскажите пожалуйста.

Автор: Snowy 17.8.2007, 16:36
Что значит "объеденить"?
Поставить одно слева, другое справа?
Или наложить одно на другое с прозрачностью?
Или какие-то другие хитрые типы наложения, типа лайтен, крин и т.п.?
Опиши подробнее исходные данные и желаемый результат.

Добавлено через 1 минуту и 12 секунд
Это подойдёт?
http://forum.vingrad.ru/index.php?showtopic=91526&view=findpost&p=701698

Автор: IGR 22.8.2007, 14:44
Цитата

Поставить одно слева, другое справа?

Да.
но потом сохранить его как одно изображение.
помогите пожалуйста. очень нужно.

Автор: IGR 3.9.2007, 14:14
нужно открыть 2 картинки ,
поместить их на форму рядом,
потом сохранить ети 2 картинки в один jpg файл.
подскажите пожалуйста.

Автор: Snowy 3.9.2007, 14:36
Код

uses jpeg;

function CombinePics(f1, f2, fr: string): boolean;
var
  p: TPicture;
  b1, b2, b3: TBitmap;
  jpg: TJpegImage;
begin
  p := TPicture.Create;
  b1 :=TBitmap.Create;
  b2 :=TBitmap.Create;
  b3 :=TBitmap.Create;
  result := True;
  try
    p.LoadFromFile(f1);
    b1.Assign(p.Graphic);
  except
    result := False;
  end;
  try
    p.LoadFromFile(f2);
    b2.Assign(p.Graphic);
  except
    result := False;
  end;
  b3.Width := b1.Width + b2.Width;
  if b1.Height > b2.Height then b3.Height := b1.Height
  else b3.Height := b2.Height;
  b3.Canvas.Draw(0, 0, b1);
  b3.Canvas.Draw(b1.Width, 0, b2);
  jpg := TJpegImage.Create;
  jpg.CompressionQuality := 80; // качество 80%
  jpg.Assign(b3);
  try
    jpg.SaveToFile(fr);
  except
    result := false;
  end;
  jpg.Free; b1.Free; b2.Free; b3.Free; p.Free;
end;
На вход имя первого файла, второго файла и имя файла-результата.
Пример:
Код
  CombinePics('C:\1.jpg', 'C:\2.bmp', 'C:\3.jpg');

Автор: IGR 13.9.2007, 10:31
Snowy, спасибо большое !!
как хорошо что ты понял что я хочу. smile 

Автор: Alexeis 13.9.2007, 10:41
  Если вопрос решен, то его нужно пометить галочкой "Вопрос решен" (справа вверху возле опций темы)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)