Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Вниз
Как соединить две фотографии .jpg в одну? Найти похожие ветки
← →
Михаил5 (2004-11-30 10:46) [0]Допустим, есть два фото (и более). Хотелось бы сделать простенький коллаж - поставить их рядом. Сделать это программно, разумеется. Вопрос подгонки по размерам и т.д. - уже второстепенный, интересует сам принцип работы с файлами такого типа.
Подскажите пожалуйста!
← →
_Nikolay © (2004-11-30 13:52) [1]Модуль целиком.
Две Jpeg преобразуются в Bmp, накладывается вторая на первую (если фон у второй вычищен, получится хорошо).
При необходимости можно приписать процедуру сохранения.
unit
U_Composite;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls,
ExtDlgs, Jpeg;
type
TForm1 = class(TForm)
FormImaje: TImage;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Jpeg : TImage ;
BitMap1 : TBitmap ;
BitMap2 : TBitmap ;
begin
Jpeg := TImage.Create(Owner);
BitMap1 := TBitmap.Create ;
BitMap2 := TBitmap.Create ;
Jpeg.Picture.LoadFromFile("jpeg\red.jpg" );
BitMap1.Assign(Jpeg.Picture.Graphic);
Jpeg.Picture.LoadFromFile("jpeg\white.jpg" );
BitMap2.Assign(Jpeg.Picture.Graphic);
BitMap2.Transparent := true ;
FormImaje.Canvas.Draw(100,100,BitMap1);
FormImaje.Canvas.Draw(120,120,BitMap2);
end;
end.
← →
OneFragLeft © (2004-11-30 17:45) [2]_Nikolay © (30.11.04 13:52) [1]
Думаю, это немного не то, что просил автор.(я могу ошибаться)
Надо сделать ленту? Я правильно понял?
Если да, то нужно вычислить размер конечной фотки(например если 10 фото 128*128 пикселей, то результатом будет 1280*128 (или 128*1280) в зависимости горизонтальной или вертикальной будет лента.)
Затем делает битмап таких рамеров и делаем Bitmap.Canvas.Draw(0,i*128,<наш JPEG>);, где i-номер фотки(если вертикальная лента). Ну а битмап уж готовый сможете использовать.
← →
OneFragLeft © (2004-11-30 17:46) [3]А если использовать StretchBitmap, то фотки под один размер подгонять не придёться.
← →
Михаил5 (2004-12-02 14:32) [4]Спасибо, _Nikolay, OneFragLeft!
Спасибо за модуль, пригодится, хотя, действительно, нужно сделать ленту. Буду пытаться!
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c