AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Auf ein Image schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Auf ein Image schreiben

Ein Thema von dedeur · begonnen am 9. Mär 2004 · letzter Beitrag vom 7. Apr 2004
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
dedeur

Registriert seit: 9. Mär 2004
Ort: Solingen
29 Beiträge
 
#1

Auf ein Image schreiben

  Alt 9. Mär 2004, 11:35
hallo NG

ich öffne auf einem Image ein bmp. dies möchte ich nun nachträglich etwas drauf schreiben.

hat jemand tipps

mfg
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#2

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 11:42
Hallo,

Einfach das Bitmap in ein TBitmap laden. Dann hast du einen Canvas und kannst nach herzenslust drauf schreiben, zeichnen, ...
Dann wieder speichern

grüße, daniel

[EDIT]Hab grad gelesen, dass du es in einem TImage hast.
Dort kannst du genauso auf den Canvas zugreifen.

  image.Picture.Bitmap.Canvas.TextOut(x, y, text); [/EDIT]
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 11:43
Zauberwort: Hier im Forum suchenDrawText

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
dedeur

Registriert seit: 9. Mär 2004
Ort: Solingen
29 Beiträge
 
#4

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 11:58
procedure TForm1.Button7Click(Sender: TObject);
var

begin
Image1.Picture.Bitmap.Canvas.TextOut(x , y, text);

end;

hab folgende fehler erhalten:

[Fehler] UNIT1.PAS(153): Bezeichner erwartet, aber 'BEGIN' gefunden
[Fehler] UNIT1.PAS(154): Undefinierter Bezeichner: 'x'
[Fataler Fehler] project1.dpr(5): Verwendete Unit 'UNIT1.PAS' kann nicht compiliert werden

ich erst den button click und dan erlauben auf der bmp zu schreiben.
ich bin noch nicht solange dabei mit delphi7 kann mir nochmal geholfen werden
vielen dank im vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 12:01
Lass das var weg und gibt anstelle von x und y die Koordinaten an.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 12:04
Zitat von dedeur:
[Fehler] UNIT1.PAS(153): Bezeichner erwartet, aber 'BEGIN' gefunden
Grund: du hast zwischen var und begin keine Variablen definiert

Zitat von dedeur:
[Fehler] UNIT1.PAS(154): Undefinierter Bezeichner: 'x'
Grund: x, y und text sollte dir nur zeigen, was die Parameter bedeuten.

So soll es aussehen:

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin
  Image1.Picture.Bitmap.Canvas.TextOut(10 , 10, 'Ich bein eine Bildbeschriftung');
end;
Das schreibt dir den Text bei den Koordinaten 10,10.
Zum speichern des Bildes nimmst du:

  Image1.Picture.Bitmap.SaveToFile(DateiName); grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
dedeur

Registriert seit: 9. Mär 2004
Ort: Solingen
29 Beiträge
 
#7

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 12:39
hat mir schon weitergeholfen ich will aber den text erst auf der bmp schreiben

und am besten wär wenn ich per mausklick bestimme wo der text erscheint

gruß
patrick
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 13:31
Hallo,

Am einfachsten wäre wohl, wenn ein Edit hast in das du zuerst den Text eingibst, einen Button (einen Speedbutton kannst du einrasten lassen) um in den "Text-am-Bild-platzieren-Modus" zu schalten.

Im ButtonClick sagst du dann:

  FTextPickMode := not FTextPickmode and (edText.Text <> ''); Wobei FTextPickMode ein boolean ist, dass du in der Klasse definieren musst.

Im OnMouseDown vom Image:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FPickMode then begin
    Image1.Picture.Bitmap.Canvas.TextOut(x , y, edText.Text);
  end;
end;
Wenn du den Text direkt am Bild eintippen willst, dann wirds schon etwas komplizierter.
Am einfachsten ist es vermutlich ein Edit dort zu erzeugen, wo du den Text platzierst.

Dafür könntest du in der Klasse ein TEdit FTempEdit definieren.

Im OnMouseDown vom Image:
Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if FPickMode then begin
   FTempEdit := TEdit.Create(self);
   FTempEdit.Parent := Image1;
   FTempEdit.OnExit := EditOnExit;
  end;
end;

procedure TForm1.EditOnExit(Sender : TObject);
begin
  Image1.Picture.Bitmap.Canvas.TextOut(FTempEdit.Left , FTempEdit.Top, FTempEdit.Text);
  FreeAndNil(FTempEdit);
end;
Das hab ich jetzt ohne testen mal hingetippt. Kann sein dass ich noch etwas vergessen hab.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
dedeur

Registriert seit: 9. Mär 2004
Ort: Solingen
29 Beiträge
 
#9

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 13:48
hallo
habe folgendes eingehagt er compeliert auch, aber wenn ich im edit1 feld etwas reinschreibe und denn button klick tut sich nichts.
muss mal ein lob an euch aussprechen ihr seid eine echte Hilfe auch wenns noch nit klappt

Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
FTextPickMode := not FTextPickmode and (edit1.Text <> '');

end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if FPickMode then begin
    Image1.Picture.Bitmap.Canvas.TextOut(x , y, edit1.Text);

end;
end;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#10

Re: Auf ein Image schreiben

  Alt 9. Mär 2004, 13:48
Mir kommt gerade so der Gedanke, dass es weniger schlau ist, das Edit im OnExit freizugeben.
Eventuell isses besser, wenn du gleich ein Edit auf das Formular ziehst und es invisible setzt.

Wo ich es im Source vorher erzeugt hätte, setzt du es Visible und setzt die Position.
Wo ich es zerstört hätte setzt du es wieder unsichtbar.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz