Avatar billede weis Nybegynder
08. oktober 2006 - 21:38 Der er 7 kommentarer og
2 løsninger

Tilføj tekst til billeder

Jeg har gang i et lille projekt, men kan ikke komme i ordentligt i gang. Jeg skal have lavet mig et program hvor man kan åbne et billede og skrive en tekst der passer til billede, så skal man self. kunne vælge den normale tekstformatering af farve og type og størelse.

Men så kommer det problematiske, så skal teksten sættes ind oven på billede, dvs man skal kunne vælge om teksten skal stå i toppen, midten eller bunden af billede og så skal man kunne gemme billedet med teksten igen som en JPG eller GIF...!

Findes der nogle steder man kan læse sig til nogle løsninger eller er der nogle der ved hvordan det kan løses!
Avatar billede martinlind Nybegynder
09. oktober 2006 - 13:12 #1
du læser det bare ind i en Tbitmap tegner/skriver din tekst på Canvas'en og gemmer det igen, delphi's TJPG kan assigne frem og tilbage mellem TBitmap
Avatar billede weis Nybegynder
09. oktober 2006 - 15:42 #2
Godt besvaret...! men jeg forstår ikke hvad du mener, du må gerne uddybe lidt...
Avatar billede hrc Mester
09. oktober 2006 - 19:38 #3
Du kan indlæse dine billeder i TBitmap-komponenten. Den har vistnok en loadfromfile() du kan bruge. Dernæst kan du tage din TBitmap komponent - lad os kalde den bitmap1 og skrive på canvas'et (tegnebrættet hvorpå dit billede er indlæst på). Det er noget med bitmap1.canvas.textout() og lignende funktioner. Husk på at x,y koordinaterne starter i øverste venstre hjørne.
Avatar billede martinlind Nybegynder
09. oktober 2006 - 20:14 #4
Noget i denne stil

uses jpg + <std. uses>

VAR
  Bmp,Bmp2 : TBitmap;
  Jpg : TJpgimage;

begin
  Bmp := TBitmap.Create();
  Bmp2 := TBitmap.Create();
  Jpg := TJpgimage.Create();
  Jpg.LoadFromFile('mitJPG.JPG');
  Bmp2.Assign(Jpg);
  Bmp.LoadFromFile('mitpic.bmp');
  Bmp.Canvas.TextOut(Bmp.Height-Bmp.Canvas.Font.TextHeight-10,10,'Hello World');
  Bmp2.Canvas.TextOut(Bmp.Height-Bmp.Canvas.Font.TextHeight-10,10,'Hello JPG World');

// Her kan du så printe/vise dine bmp'er
//
  Din kode....
 

// og Huske at ryde op :)
  Bmp2.Free;
  Bmp.Free;
  Jpg.Free;
end;
Avatar billede martinlind Nybegynder
09. oktober 2006 - 20:16 #5
f.eks. kan du efter du har skrevet i dem gøre sådan

Bmp.SaveToFile('mitpic2.bmp');
Jpg.Assign(Bmp2);
Jpg.SaveToFile('mitJPG2.JPG');
Avatar billede weis Nybegynder
10. oktober 2006 - 20:25 #6
jeg må desværre sige at jeg ikke helt er med på hvad der forgår... fordi det jeg har brugt indtil videre til mine billeder det er Timage...! og jeg kender ikke noget til Tbitmap...! jeg kan heller ikke gennemskue hvordan jeg får teksten til at stå centeret på billede (og ikke bare 10,10) eller hvordan jeg skifter formateringen af teksten???
Avatar billede hrc Mester
10. oktober 2006 - 22:29 #7
procedure TfrmImage.ButtonClick(Sender: TObject);
var
  tw, th : integer;
  x, y : integer;
begin
  Image.Picture.LoadFromFile('billede.bmp');

  Image.Canvas.Font.Name := 'Ariel';
  Image.Canvas.Font.Size := 128;
  Image.Canvas.Font.Color := clRed;
  Image.Canvas.Font.Style := [fsBold];
  tw := Image.Canvas.TextWidth(GreetingText);
  th := Image.Canvas.TextHeight(GreetingText);

  x := (Image.Picture.Bitmap.Width - tw) shr 1;
  y := (Image.Picture.Bitmap.Height - th) shr 1;
  Image.Picture.Bitmap.Canvas.TextOut(x,y,GreetingText);
end;

Der er en enkelt fælde idet en TImage har et canvas direkte under sig mens at der under picture.bitmap også er et. Den første har en font-property under sig, så det er åbenbart der man sætter den mens billedet findes under den sidste - teksten skal skrives der.

En beklagelig mangel med TImage er, at den ikke understøtter jpg. På Delphi-cd'en ligger der en komponent der kan det (men den skulle være dårlig). Prøv at kigge hos Torry hvis du vil have den med.
Avatar billede weis Nybegynder
10. oktober 2006 - 22:44 #8
men hvis det vil være smartere i et Tbitmap så vil jeg da gerne ændre det i min form, men hvor kan jeg så læse mere om det, og hvor er det for jeg sys ikke at være stødt på det...!
Avatar billede hrc Mester
11. oktober 2006 - 09:05 #9
TImage samler en række komponenter deriblandt TBitmap. Stil cursoren på teksten "timage" og tryk F1 så får du al den information der er i Delphi. Alternativt kan du prøve at skrive "+delphi +timage" i Google
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester