F_VN_ExportImageAsJpeg
Exports the image as jpeg.
Syntax
Definition:
FUNCTION F_VN_ExportImageAsJpeg : HRESULT
VAR_INPUT
ipImage : ITcVnImage;
ipJpeg : Reference To ITcVnDataExport;
nLumaQuality : DINT;
hrPrev : HRESULT;
END_VARInputs
|
Name |
Type |
Description |
|---|---|---|
|
ipImage |
Source image (ET_USINT or ET_UINT with 1, 3 or 4 channels). ET_UINT only supports lossless compression. 3 channel expects RGB, 4 channel RGBA (alpha is simply ignored, jpeg does not support it). | |
|
ipJpeg |
Reference To ITcVnDataExport |
Returns the jpeg image. The resulting data can be exported via RPC. |
|
nLumaQuality |
DINT |
Luma quality, which is in a range of 0 - 100 for lossy or 101 - 107 for lossless compression (for lossless, this selects 1 - 7 as the predictor). Recommended: 90 for lossy or 101 for lossless. Lossless compression is significantly slower and leads to larger files, so usually a high-quality lossy compression is the better choice. |
|
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Weiterführende Informationen
Die Funktion F_VN_ExportImageAsJpeg komprimiert das übergebene Bild in das JPEG-Format und stellt das Ergebnis als exportierbares Datenobjekt bereit. Das Ergebnisbild im JPEG-Format kann anschließend über einen ADS Remote Procedure Call (RPC) aus der Steuerung abgerufen werden.
Der Anwendungsfall ist die Übertragung komprimierter Bilder. Da JPEG eine verlustbehaftete Kompression bietet, lässt sich damit die Datenmenge gegenüber unkomprimierten Bildern deutlich reduzieren. Für Fälle, in denen keine Kompressionsartefakte toleriert werden, steht zusätzlich eine verlustfreie JPEG-Kompression zur Verfügung.
Parameter
Eingangsbild
Das Eingangsbild ipImage muss als ET_USINT oder ET_UINT mit 1, 3 oder 4 Kanälen übergeben werden. Einkanalige Bilder werden als Graustufenbild interpretiert, 3-kanalige Bilder als RGB und 4-kanalige Bilder als RGBA. Der Alpha-Kanal wird bei RGBA ignoriert, da JPEG keine Transparenz unterstützt. Bilder vom Typ ET_UINT können ausschließlich mit der verlustfreien Kompression verwendet werden.
Ergebnisbild
Über ipJpeg wird das komprimierte JPEG-Bild als ITcVnDataExport zurückgegeben. Die Daten können anschließend über einen externen ADS-RPC exportiert und angezeigt oder weiterverarbeitet werden. Zum Abrufen der Daten wird die Methode GetDataIfNewRpcUnlocked() empfohlen. Damit das Interface für ADS verfügbar ist, muss im SPS-Code das folgende Interface deklariert werden:
ipAdsInterface : ITcVnDataExportRpcUnlocked;Das Interface muss lediglich deklariert werden, im Code wird ausschließlich das ITcVnDataExport verwendet.
Kompressionsqualität
Der Parameter nLumaQuality steuert Art und Güte der Kompression und unterscheidet zwischen verlustbehafteter und verlustfreier Kompression:
- Verlustbehaftete Kompression (0 - 100)
Höhere Werte bedeuten bessere Bildqualität bei größerer Datenmenge. Ein empfohlener Startwert ist 90, der einen guten Kompromiss zwischen Qualität und Dateigröße bietet. - Verlustfreie Kompression (101 - 107)
Über die Werte 101 - 107 wird der Prädiktor 1 - 7 der verlustfreien JPEG-Kompression ausgewählt, empfohlen wird 101. Die verlustfreie Kompression benötigt deutlich mehr Rechenzeit und erzeugt größere Datenmengen, sodass in der Regel eine hochwertige verlustbehaftete Kompression die bessere Wahl ist. Für Bilder vom TypET_UINTist dies die einzige unterstützte Kompression.
Expert-Parameter
Die Expert-Variante F_VN_ExportImageAsJpegExp enthält zusätzliche Parameter.
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
|---|---|---|
TwinCAT V3.1.4024.59 or later | PC or CX (x64) with min. PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |