怎么样使图片上产生随机干扰 |
尚未結案
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
var idx: integer; procedure TForm1.Button1Click(Sender: TObject); begin Image1.Canvas.Font.Color := clRed; Image1.Canvas.Font.Size := 42; if Edit1.Text <> '' then begin image1.Canvas.TextOut(0, 0, edit1.Text[idx]) ; image2.picture.Bitmap.Assign(image1.picture.Bitmap); end; end; procedure TForm1.FormCreate(Sender: TObject); begin idx := 1; Timer1.Interval := 2000; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(idx); Image1.Canvas.Font.Color := clRed; Image1.Canvas.Font.Size := 42; if Edit1.Text <> ' ' then begin image1.Canvas.TextOut(0, 0, edit1.Text[idx]) ; image2.picture.Bitmap.Assign(image1.picture.Bitmap); if idx > Length(edit1.Text) then idx := 1; end; end;在上面的程序中已经实现了将edit1.text中的字符读取道bitmap中,我想问的问题是怎么样能让读取的字符在bitmap中有干扰点,还有一个问题就是如果edit.text上是汉字时,bitmap上显示出来的不是汉字?? |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
用 WideString 的方式試試:
procedure TForm1.Timer1Timer(Sender: TObject); var s: WideString; begin Inc(idx); Image1.Canvas.Font.Color := clRed; Image1.Canvas.Font.Size := 42; s := Edit1.Text; if s <> ' ' then begin image1.Canvas.TextOut(0, 0, s[idx]) ; image2.picture.Bitmap.Assign(image1.picture.Bitmap); if idx > Length(s) then idx := 1; end; end; |
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
小丫123
初階會員 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
那大概是這樣的方式(要加幾個點自己決定):
procedure TForm1.Timer1Timer(Sender: TObject); var s: WideString; iWidth: integer; i,j: integer; iDot: integer; begin Inc(idx); Image1.Canvas.Font.Color := clRed; Image1.Canvas.Font.Size := 42; s := Edit1.Text; if s <> ' ' then begin image1.Canvas.TextOut(0, 0, s[idx]) ; iWidth := image1.Canvas.TextWidth(s[idx]); for i := 0 to Image1.Height - 1 do for j := 1 to 3 do begin iDot := Trunc(Random(iWidth)); image1.Canvas.Pixels[i, iDot] := clRed; end; image2.picture.Bitmap.Assign(image1.picture.Bitmap); if idx > Length(s) then idx := 1; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |