Znak wodny w Delphi

0

Witam, chciałbym napisać program do tworzenia przezroczystych znaków wodnych na zdjęciu. Znalazłem takie artykuły:

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_21441654.html

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Graphics/Q_22793602.html

ale stworzony tam znak wodny ma w sobie ramkę, wokół tekstu, której ja nie chcę mieć. Ma ktoś jakiś pomysł, żeby zrobić znak wodny tylko z przezroczystym tekstem bez żadnej ramki??

0

Piszesz text / rysujesz znak na bitmapie i używasz tego :
To co ja napisalem lub kod Szczawik'a

0

Jak wywołać procedure DrawTransparency. Próbowałem zrobić przezroczystego ducha. Napisałem tak:

procedure TForm1.Button6Click(Sender: TObject);
var

bit:Tbitmap;
begin
  bit:=Tbitmap.Create;
  bit.LoadFromFile('duch.bmp');

  bit.TransparentColor:=clblue;
  bit.Transparent:=true;


  DrawTransparency(bit.Canvas,0,0, bit,20);
  bit.SaveToFile('xx.bmp');

  image3.Picture.Bitmap:=bit;
end;

ale nie widzę żadnej pomocy. Mógłby mi ktoś pomóc?

0

jak rysujesz na tym samym i w tym samym miejscu to jak ma byc przeźroczyste :P
to tak jakbyś miał 2 fotki takie same i ta z przodu miałaby prześwitywac to i tak widziałbyś normalną .
rysuj bitmapke na czym innym a nie na jej samej :P.

DrawTransparency(Form1.Canvas, 0,0, bit,20);


var
bmp : TBitmap;
const ZnakWodny ='www.4programmers.net';

//i potem 
bmp := TBitmap.Create;
bmp.Canvas.Font.Size :=30;
bmp.Width:= bmp.Canvas.TextWidth(ZnakWodny) ;
bmp.Height:= bmp.Canvas.TextHeight(ZnakWodny) ;
bmp.Canvas.TextOut(0,0,ZnakWodny); 

bmp.TransparentColor :=ClWhite;
bmp.Transparent := true;
DrawTransparency(Canvas,0,0,bmp,80); //maluje na formie 2x 
DrawTransparency(Canvas,2,2,bmp,90);
bmp.Free;

0

a jak napisać tekst na zdjęciu wczytanym do komponenti Image1??

0

już wiem, jak to zrobić, ale mam inny problem. Kolor nie bardzo mi odpowiada. Chciałbym, żeby tekst przezroczysty był biały.Napisałem tak:

bmp.Canvas.Font.Color:=clwhite;

bmp.Canvas.Font.Name:='Franklin Gothic Medium';
bmp.Width:= bmp.Canvas.TextWidth(ZnakWodny) ;
bmp.Height:= bmp.Canvas.TextHeight(ZnakWodny) ;
bmp.Canvas.TextOut(0,0,ZnakWodny);

bmp.TransparentColor :=Clblack;


bmp.Transparent := true;
DrawTransparency(image1.Canvas,60,180,bmp,40); //maluje na formie 2x

i teraz kolor przezroczystosci mi się podoba, tylko zamiast tekstu pokazuje się biała przezroczysta ramka (prostokąt). Jak można to zmienić??

0

Napisałem

bmp.Canvas.Font.Color:=$00FFFFFE;

bmp.TransparentColor :=Clwhite;

i uzyskałem to, o co mi chodziło.
Mam jeszcze pytanie, czy da się wygładzić jakoś napisany tekst. Wygląda on teraz okropnie. Jakby nie antyalisiingu. W porównaniu do programu Visual Watermark widać wyraźną różnicę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1