image_to_memory_block — Schreiben eines Bildes in einen Speicherblock in verschiedenen
Grafikformaten.
image_to_memory_block(Image : : Format, FillColor : MemoryBlockHandle)
image_to_memory_block schreibt das angegebene Bild Image im
Format Format in den Speicherblock MemoryBlockHandle. Falls
die Domäne im gewünschten Format nicht abgespeichert werden kann (das
ist der Fall bei 'jpeg'), erhalten die Pixel außerhalb der Region die durch
FillColor definierte Farbe. Für Grauwertbilder muss ein Wert zwischen
0 (Schwarz) und 255 (Weiß) angegeben werden, bei Farbbildern
können direkt die RGB-Werte angegeben werden, z.B. hexadezimal:
0xffff00 für einen gelben Hintergrund (Rot=255, Grün=255, Blau=0).
Es können folgende Formate in Format gesetzt werden:
Dieses Format kann nur Bilder mit einem Kanal (Grauwertbilder) oder mit drei Kanälen (RGB-Farbbilder) speichern.
Für dieses Format werden nur Bilder mit dem Pixeltyp byte unterstützt.
Zusammen mit dem Format kann ein Qualitätsmaß angeben werden, das die Komprimierungsrate und die Qualität des gespeicherten Bildes bestimmt. Große Werte (Maximum 100) erzeugen einen relativ großen Speicherblock mit hoher Qualität, bei kleinen Werten nimmt die Qualität und die Größe des Speicherblocks deutlich ab.
Mögliche Werte: 'jpeg', 'jpeg 30', 'jpeg 60'.
Achtung: Bilder, die zu einem späteren Zeitpunkt noch ausgewertet werden müssen, sollten aufgrund der Verluste nicht im JPEG-Format abgespeichert werden!
Dieses Format kann nur Bilder mit einem Kanal (Grauwertbilder) oder mit drei Kanälen (Farbbilder) speichern. Die maximal unterstützte Bildgröße (Breite x Höhe) für PNG beträgt , auch in HALCON XL.
Im PNG Format können Bilder vom Typ byte und uint2 abgespeichert werden.
Zusammen mit dem Format kann ein Komprimierungsgrad zwischen 0 und 9 angegeben werden, wobei 0 keiner Komprimierung und 9 der bestmöglichen Komprimierung entspricht. Alternativ kann die Komprimierung über Stringkonstanten ausgewählt werden.
Mögliche Werte: 'png', 'png 7', 'png none', 'png best', 'png fastest'.
Falls ein Bild mit eingeschränktem Definitionsbereich übergeben wird, wird die Region als Alpha-Kanal abgespeichert, wobei die Punkte innerhalb des Definitionsbereichs mit dem maximalen Grauwert des Eingabebildtyps abgespeichert werden und die Punkte außerhalb des Definitionsbereichs mit dem Grauwert 0. Falls ein Bild mit vollem Definitionsbereich übergeben wird, wird kein Alpha-Kanal abgespeichert.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Image (input_object) (multichannel-)image → object (byte / direction / cyclic / int1 / complex / int2 / uint2 / vector_field / int4 / int8 / real)
Zu speicherndes Bild.
Format (input_control) string → (string)
Grafikformat.
Defaultwert: 'jpeg'
Wertevorschläge: 'jpeg', 'png'
FillColor (input_control) number → (integer / real)
Grauwert für Bildpunkte, die nicht zur Domäne (Region) des Bildes gehören.
Defaultwert: 0
Wertevorschläge: -1, 0, 255, 65280, 16711680
MemoryBlockHandle (output_control) memory_block → (handle)
Handle des Speicherblocks.
Sind die Parameterwerte korrekt, dann liefert image_to_memory_block
den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.
get_memory_block_ptr,
write_memory_block
Foundation