Wie kann ich einen Text in ein Bild eintragen?

Hallo Ihr Lieben
Ich stelle mich wahrscheinlich wieder zu dusselig an.
mit bekomme ich im eine Fehler:
var pic as picture
pic=Image1
pic.Graphics.DrawText(“hallo”,20,50)

Liebe Grüsse
Micha

Was für eine Fehlermeldung kommt denn genau?

Ist Image1 vom falschen Typ oder nicht erreichbar?

Siehe auch TextShape Klasse, das ist neuer und ich finde oft besser.

// Test 1
var pic as picture

pic=Image1

Break

pic.Graphics.DrawText("hallo",20,50)

Wenn ich das Bild so lade ist es in “pic” enthalten, das Property “pic.Graphics” ist allerdings nil.

// Test 2
var p as Picture 
Var f As FolderItem
f = FolderItem.ShowOpenFileDialog("image/png")
if f <> nil then
  p = Picture.Open(f)
  
  break
  
  p.Graphics.Bold = True
  p.Graphics.Italic = True
  p.Graphics.FontName = "Helvetica"
  p.Graphics.FontSize = 18
  p.Graphics.DrawingColor = &cff0000
  
  p.Graphics.DrawText("hallo",20,50)
  
end if

Der zweite Test entspricht eigentlich der XOJO-Dokumentation. Hier ist “p.Graphics” ebenfalls nil.

Kann es sein, daß Picture.Graphics einen Fehler hat?

Bitte ein neues Bild anlegen, dass alte dort hinein zeichnen und dann den Text drüber schreiben.

Das geladene Bild ist nur zum Lesen.

// Test 3 mit einem Bild der Größe 3835 × 2093
var pic as new picture(3835,2093,32)

pic=Image1

Break

pic.Graphics.DrawText("hallo",20,50)

break

War da so gemeint? Hier ist “pic.Graphics” ebenfalls nil.

dim pic as new Picture(xxx,xxx)
pic.graphics.drawimage(image1, parameters)
pic.Graphics.DrawText("hallo",20,50)
1 Like

Warum sollte ein Bild was ich so öffne anders sein als New Picture(…)?
Wer denkt sich denn sowas aus bei Xojo!?

Xojo versteckt die Details.
Ein Picture kann intern eins von einem duzend Sachen sein.

Aus der Datei bekommst Du je nach System nur eine Bildrefernenz. Erst beim malen in ein anderes Bild wird es dekodiert. Und mit new legst du eine Bitmap an, also da wird wirklich mal Speiche für Pixel angelegt.

1 Like

Hallo Freunde,
Also, ich bin erstmal froh, dass ich doch nicht ganz so dusselig bin!
Ich habe das Bild im internen Image abgelegt.
Ich habe mich dann erstmal um wichtigere Dinge gekümmert,
Trotzdem vielen Dank