求助:图像处理的难题?(50分)

  • 主题发起人 主题发起人 sxwy
  • 开始时间 开始时间
S

sxwy

Unregistered / Unconfirmed
GUEST, unregistred user!
现在想用TEXTOUT的方式在一个IMAGE上输出文字,(想用一个鼠标拖动一个IMAGE1,然后放在另一个IMAGE2上,放在哪里就将信息写在哪里,不知有没有办法做到.分不够再加);但是还要求这个IMAGE2加载一个背景图片.等IMAGE1放下来之后就将文字和图片重合.有点像将文字以透明的方式放在IMAGE2上,不知哪位大虾有没有办法帮一下我.
 
Canvas.Brush.Style:=bsClear; //文字背静透明
Canvas.Font.Color:=clRed; //文字颜色
Canvas.TextOut(x,y,'文字内容') //绘制文字
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, jpeg;

type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1StartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure Image2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.BeginDrag(true);
end;

procedure TForm1.Image1StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
DragObject:=nil;
end;

procedure TForm1.Image2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=true;
end;

procedure TForm1.Image1EndDrag(Sender, Target: TObject; X, Y: Integer);
begin
Image2.Canvas.CopyRect(rect(x,y,image1.Width+x,image1.Height+y),image1.Canvas,rect(0,0,image1.Width,image1.Height));
end;

end.
 
多谢你们,我试试再回复.
 
不是这样的效果呀.我试了一下,这样只能拖动一次,如果要更改的话,就不行了.如果要更改放入的图片(比如说IMAGE1放在IMAGE2上),那要怎么更改呢.
 
后退
顶部