Попробуйте следующее:
uses
PNGImage;
procedure TForm1.Button1Click(Sender: TObject);
var
PNGImage: TPNGImage;
BlobStream: TMemoryStream;
begin
// create the PNG image instance
PNGImage := TPNGImage.Create;
try
// assuming you have in the BlobStream variable the image from a DB loaded
PNGImage.LoadFromStream(BlobStream);
// setup the text background to be transparent
PNGImage.Canvas.Brush.Style := bsClear;
// optionally configure the font
PNGImage.Canvas.Font.Size := 11;
PNGImage.Canvas.Font.Color := clRed;
PNGImage.Canvas.Font.Style := [fsBold];
// and render it to the image's canvas
PNGImage.Canvas.TextOut(5, 5, 'SomeText');
// save this modified image to the file
PNGImage.SaveToFile('c:\picture.png');
finally
// and finally free the PNG image instance
PNGImage.Free;
end;
end;
Вот пример того, как бы я создать свою визитку (не забудьте сохранить файл necessary image
в d:\llamas.png
):
uses
GraphUtil, PNGImage;
procedure CreateCard(const AFileFile: string; AImage: TPNGImage;
const AName, ASurname: string);
begin
with TPNGImage.CreateBlank(COLOR_RGB, 8, 330, 160) do
try
GradientFillCanvas(Canvas, clWhite, $000080FF,
Canvas.ClipRect, gdVertical);
Canvas.StretchDraw(Rect(18, 18, 108, 108), AImage);
Canvas.Pen.Width := 2;
Canvas.Brush.Style := bsClear;
Canvas.Rectangle(5, 5, Width - 4, Height - 4);
Canvas.Font.Size := 12;
Canvas.Font.Style := [fsBold];
Canvas.TextOut(110, 30, 'Form: ' + AName + ' :.');
Canvas.TextOut(125, 60, 'Genus: ' + ASurname + ' :.');
SaveToFile(AFileFile);
finally
Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
PNGImage: TPNGImage;
begin
PNGImage := TPNGImage.Create;
try
// here you will load the image blob (by using LoadFromStream)
// instead of LoadFromFile
PNGImage.LoadFromFile('d:\llamas.png');
CreateCard('d:\visit-card.png', PNGImage, 'Alpaca', 'Lama');
finally
PNGImage.Free;
end;
end;
Вот как это выглядит:
Загрузите изображение в TBitmap. Вызовите TBitmap.Canvas.TextOut. Сохраните растровое изображение. –
Добро пожаловать в StackOverflow! Попробуйте перефразировать свой вопрос; это звучит для меня как полное задание на домашнюю работу, вы что-то пробовали? На ваши вопросы: 1) * загрузить образ из БД * - в Интернете есть куча примеров, просто попробуйте найти один 2) * добавьте эти данные в другое изображение * - какие данные вы хотите добавить к тому, что другое изображение и как ? Вы имели в виду загрузить изображение из БД вместе с некоторым текстом, скажем, с описанием изображения, и нарисовать это описание на изображении и сохранить его где-нибудь? И что такое идентификационная форма? – TLama
@TLama да, я загрузил изображение из БД, и да, что-то в этом роде. здесь s ID-форму: http://i891.photobucket.com/albums/ac114/evilkidaz/ID.png Мне нужно загрузить имя, фамилию и изображение из БД и поместить их в свои места в форме, затем сохраните его. У меня только проблемы с вложением этих данных на картинке DavidHeffernan Спасибо за ваш ответ, но текст поставляется с серым фоном. и я могу изменить шрифт? сделать его больше или изменить цвета? Редактирование: я узнал, как вставить изображение: [code] Image1.Canvas.Draw (1,1, graphic); [/ code] –