![]() |
![]() |
|---|---|
USB 2.0 USB 3.x GigE |
USB 2.0 USB 3.x GigE |
Syntax
INT is_ImageFile (HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Beschreibung
|
Hinweis zu Linux-Systemen Für das Speichern von Bildern als JPEG oder PNG müssen unter Linux bestimmte Bibliotheken (libraries) installiert sein (siehe ReadMe-Datei https://de.ids-imaging.com/download-ueye.html). |
is_ImageFile() lädt und speichert ein Bild aus einer bzw. in eine Datei. Das Bild muss als BMP-, JPEG- oder PNG-Format vorliegen. Das Bild wird in den aktiven Bildspeicher geladen, bzw. aus dem aktiven Bildspeicher ausgelesen.
|
Beim Speichern eines Bildes sollte is_FreezeVideo() nicht mit dem Parameter IS_DONT_WAIT aufgerufen werden, da die Bildaufnahme zum Zeitpunkt des Speicherns eventuell noch nicht abgeschlossen ist. |
Das Bitmap wird mit der Farbtiefe gespeichert, mit der der Bildspeicher alloziert wurde bzw. auf die bei Direct3D der aktuelle Farbmodus eingestellt ist. Bilder mit einer Bittiefe von mehr als 8 Bit können im PNG-Format abgespeichert werden. 12 Bit-Formate werden dabei in 16 Bit umgewandelt. Die JPEG-Datei wird immer mit einer Farbtiefe von 8 oder 24 Bit gespeichert.
|
Im Direct3D- oder OpenGL-Modus werden Overlay-Daten nicht gespeichert. |
Über den Übergabeparameter nCommand wird dabei der Funktionsmodus gewählt. Der Übergabeparameter pParam ist abhängig vom Funktionsmodus unterschiedlich belegt; bei Funktionen zum Setzen oder Rücklesen eines Wertes enthält pParam einen Zeiger auf eine Variable vom Typ UINT. Die Größe des Speicherbereichs, auf den pParam verweist, wird im Übergabeparameter cbSizeOfParam angegeben.
Übergabeparameter
hCam |
Handle auf Kamera |
pParam |
Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist. |
cbSizeOfParam |
Größe des Speicherbereichs in Byte, auf den pParam verweist. |
Inhalte der Struktur IMAGE_FILE_PARAMS
wchar_t* |
pwchFileName |
Name der zu ladenden/speichernden Datei (Unicode). Bei Übergabe von NULL wird der "Datei öffnen"-/"Speichern unter"-Dialog angezeigt. |
UINT |
nFileType |
Zu speichernder/ladender Dateityp: •IS_IMG_BMP •IS_IMG_JPG •IS_IMG_PNG |
UINT |
nQuality |
•JPEG/PNG: Gibt die Bildqualität an. Je höher der Wert, desto besser die Qualität. •BMP: Der Parameter wird ignoriert. |
char** |
ppcImageMem |
Beim Laden: Zeiger auf einen Bildspeicher und Zeiger auf die dazugehörige ID. Sind beide Zeiger = NULL, dann wird das Bild in den aktiven Bildspeicher geladen. Sind beide Zeiger gültig, dann wird ein neuer Speicher alloziert. Dieser muss mit is_FreeImageMem() wieder freigegeben werden. Beim Speichern: Zeiger auf einen Bildspeicher und Zeiger auf die dazugehörige ID. Sind beide Zeiger = NULL, dann wird das Bild aus dem aktiven Bildspeicher gespeichert. Sind beide Zeiger gültig, dann wird der entsprechende Speicher verwendet. |
UINT* |
pnImageID |
|
BYTE |
reserved[32] |
reserviert |
Rückgabewert
IS_FILE_READ_INVALID_BMP_ID |
Die angegebene Datei besitzt kein gültiges Bitmap-Format. |
IS_FILE_READ_OPEN_ERROR |
Die Datei kann nicht geöffnet werden. |
IS_INVALID_PARAMETER |
Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich. |
IS_NO_SUCCESS |
Allgemeine Fehlermeldung |
IS_NOT_SUPPORTED |
Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht. |
IS_SUCCESS |
Funktion erfolgreich |
Verwandte Funktionen
IMAGE_FILE_PARAMS ImageFileParams;
ImageFileParams.pwchFileName = NULL;
ImageFileParams.pnImageID = NULL;
ImageFileParams.ppcImageMem = NULL;
ImageFileParams.nQuality = 0;
// Load bitmap into active memory (with file open dialog)
ImageFileParams.nFileType = IS_IMG_BMP;
INT nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_LOAD, (void*)&ImageFileParams, sizeof(ImageFileParams));
// Load jpeg into active memory (with file open dialog)
ImageFileParams.nFileType = IS_IMG_JPG;
nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_LOAD, (void*)&ImageFileParams, sizeof(ImageFileParams));
// Alloc image memory and load bitmap into it (without file open dialog)
char* pcMemory = NULL;
UINT nID = 0;
ImageFileParams.pwchFileName = L"c:\\test.bmp";
ImageFileParams.pnImageID = &nID;
ImageFileParams.ppcImageMem = &pcMemory;
ImageFileParams.nFileType = IS_IMG_BMP;
nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_LOAD, (void*)&ImageFileParams, sizeof(ImageFileParams));
IMAGE_FILE_PARAMS ImageFileParams;
ImageFileParams.pwchFileName = NULL;
ImageFileParams.pnImageID = NULL;
ImageFileParams.ppcImageMem = NULL;
ImageFileParams.nQuality = 0;
// Save bitmap from active memory to file (with file open dialog)
ImageFileParams.nFileType = IS_IMG_BMP;
INT nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_SAVE, (void*)&ImageFileParams, sizeof(ImageFileParams));
// Save jpeg from active memory with quality 80 (without file open dialog)
ImageFileParams.pwchFileName = L"c:\\test.jpg";
ImageFileParams.nFileType = IS_IMG_JPG;
ImageFileParams.nQuality = 80;
nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_SAVE, (void*)&ImageFileParams, sizeof(ImageFileParams));
// Save png from special memory with quality 50 (with file open dialog)
ImageFileParams.pwchFileName = NULL;
ImageFileParams.pnImageID = &nID; // valid ID
ImageFileParams.ppcImageMem = &pcMemory; // valid buffer
ImageFileParams.nFileType = IS_IMG_PNG;
ImageFileParams.nQuality = 50;
nRet = is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_SAVE, (void*)&ImageFileParams, sizeof(ImageFileParams));