Wie bekomme ich Text über Skripting in ein Bild?

O.S.

Mitglied
Registriert
06.08.04
Beiträge
1.046
Ort
Berlin
Ich peppe gerade etwas mein in VBSkript verfasstes Messkurven-Skript auf, da fehlt noch der aktuelle Dateiname. Ich dachte, ich nehme einfach FF_DrawText und gut is:

FF_DrawText Bildname, 20, 290, 20, 0, 400, false, false, "Arial", (65536*240+256*240+240)

Das Skript läuft durch, 'vergisst' aber leider die Anweisungen unterhalt von FF_DrawText...

Was mache ich hier falsch?

Gruß
Olaf
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Olaf,

ist die Variable Bildname auch belegt, heißt hat Inhalt?
Zur Farbe: Schon mal an die RGB-Funktion von VBScript gedacht?

Schönen Gruß,
Werner.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

...der zuverlässige Retter in der Not! :D
Im Vergleich zum Autofahren hättest du mich auch fragen können, ob noch Benzin im Tank ist! ;) Aber hätte sein können. Zuerst lese ich den Bildnamen:

Bildname=FF_GetImageName(-1)

Dann will ich das an eine feste Position schreiben:

Schriftart="Arial"
FF_DrawText Bildname, 20, 320, 20, 0, 400, false, false, Schriftart, 255

Geht nicht. Das Skript stoppt an dieser Stelle.

Und was meinst du mit RGB-Funktion? Gibt es Konstanten für Farben?
 
Zuletzt bearbeitet:
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Olaf,

überprüf doch mal bitte, ob FF_GetImageName(-1) überhaupt einen Namen liefert. Wenn das Bild neu erstellt wurde, wird kein Name zurückgeliefert. Also vor Ausgabe mal einfach MsgBox Bildname. Überhaupt kannst Du für's Debuggen Msgbox öfters verwenden. Auch, ob es überhaupt zu der Stelle kommt.

Hast Du die VBScript-Hilfe überhaupt schon mal gelesen?

Windows Scripting Technologien schrieb:
Gibt eine ganze Zahl zurück, die einen RGB-Farbwert darstellt.

RGB(Rot, Grün, Blau)

Argumente

Rot
Erforderlich. Zahl im Bereich von 0-255, die den Rotanteil der Farbe darstellt.
Grün
Erforderlich. Zahl im Bereich von 0-255, die den Grünanteil der Farbe darstellt.
Blau
Erforderlich. Zahl im Bereich von 0-255, die den Blauanteil der Farbe darstellt.

Schönen Gruß,
Werner.

PS: Wie groß ist Dein Bild eigentlich?
PPS: Wenn es stoppt, zeigt der Editor im Debug-Bereich irgendwelche Fehler an?
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo W.P.!

Jetzt bin ich frech und poste mal den Teil des Skriptes:

Code:
' Bild mit Messkurve und den Teststreifen in c:\temp\ speichern 

msgbox right(Bildname,30)
FF_DrawText right(Bildname,30), 20, 320, 20, 0, 400, false, false, "Arial", rgb(240,240,240)

for y=0 to 255 
	if y<10 then 
		msgbox "!"
	end if
 for x=0 to 255 
  aktRGB = R_MessArray(x,y) * 65536 + G_MessArray(x,y) * 256 + B_MessArray(x,y)
  FF_SetPixel x+265,y,aktRGB 
  aktRGB2 = R2_MessArray(x,y) * 65536 + G2_MessArray(x,y) * 256 + B2_MessArray(x,y)
  FF_SetPixel x,y,aktRGB2 

 next 
 FF_SetProgress y,254 
next 

msgbox "jetzt bild speichern"
FF_SaveImage "c:\temp\Messkurve.jpg",0
FF_Popimage
FF_Reload

1. Wenn ich FF_DrawText ausblende läuft es bis zum Reload durch
2. Wenn ich FF_DrawText verwende, läuft die Schleife über y=0 genau einmal durch, dann passiert nix mehr.

Gruß Olaf
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Olaf,

nachdem ich mir mit FF_GetImageName(-1) den Bildnamen geholt habe und Deine doppelte For-Schleife raus geschmissen habe (zweidimensionales Array oder Funktion verursacht Fehler, da in dem Beispiel nicht definiert) und FF_PopImage entfernt hatte (FF_PopImage ohne FF_PushImage erzeugt Fehler) wurde der Schriftzug ganz normal ins Bild geschrieben.

Übrigens kannst Du auch für die Werte in der doppelten For-Schleife mit der RGB-Funktion arbeiten. Dürfte etwas schneller sein. Außerdem ist eine Fehlerbehandlung für zu große(kleine) Werte darin enthalten.

Ich vermute mal, da ich es nicht weiß, dass Du den Schriftzug einfach zu tief, also außerhalb des Bildes zeichnest(y=320). Müsste vielleicht y=256 heißen.

Schönen Gruß,
Werner.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo W.P.,
danke für Deine Versuche!

Allerdings war das nur ein Ausschnitt aus dem Skript. Das lief ja schon mehrfach fehlerfrei durch (siehe Beispiel bei 'Schatten aufhellen' heute). Arrays waren definiert, alle Variablen hübsch gefüllt. Zuerst kam PushImage, dann später das PopImage.
Y=320 oder 250 oder 280, alles schon probiert, das Bild ist selbst y=400 hoch.

Naja, egal. Dann halt kein Text im Skript. Ist wohl eh nur für mich interessant, die Messkurve! ;)
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Olaf,
setze mal einen Aufruf von FF_SetArea(..) vor das DrawText.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Olaf,

warum die Flinte so schnell ins Korn werfen?
Kommentier halt mal Stück für Stück im Skript aus, bis ein Text gezeichnet wird. Wir wissen ja nicht, was Du vorher so alles getrieben hast und wie die Ausgangssituation ist.
Oder anders rum, kommentier alles aus, außer dem Text und entferne Stück für Stück das Kommentarzeichen wieder. Das Speichern und das Pop_Image kannst Du ja derweil weglassen (auskommentieren), damit Du das Ergebnis siehst und reagieren kannst, ohne Müll zu produzieren.
Nur so kommst Du einem Fehler auf die Spur.

FF_SetArea könnte die richtige Spur sein, wenn Du im Skript mit Masken gearbeitet hast.

Schönen Gruß,
Werner.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Werner,
ich hatte im Zusammenhang mit dem Texteinblenden auch schon Probleme.
Auch ohne vorher Masken benutzt zu haben.
Das Cliping scheint nicht zuverlässig initialisiert zu sein.
Setzen auf 0,0,0,0 (also ausschalten) half bei mir.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Hallo Heinz,

hatte zwar nie Probleme damit, allerdings habe ich, wenn ich mit FF_DrawText gearbeitet habe, dies in der Regel vor allen anderen Arbeiten getan, nach dem Laden eines Bildes selbstverständlich. Daher hatte ich dieses Problem wahrscheinlich nie.

Mal sehen, was Olaf daraus macht.

Schönen Gruß,
Werner.
 
AW: Wie bekomme ich Text über Skripting in ein Bild?

Habe es ja nicht ganz aufgegeben, aber die Schriftplazierung ist mir nicht soo wichtig, dass ich da jetzt Stunden investiere. FF_Setarea hat jedenfalls nichts gebracht, eine Maskierung war ja nicht dabei. Pop und Push brauche ich nun mal, um das aktuelle Bild zwischenzuspeichern und das Messkurven-Bild zu erzeugen. In das sollte dann der Text rein.

Werde vielleicht später noch mal schauen, woran es liegen könnte, sehe aber bei mir keinen gravierenden Fehler...

Gruß Olaf
 
Zurück
Oben