Zurück zur cPicture-Startseite

Funktions-Zusatzmodule

cPicture unterstützt Funktions-Zusatzmodule, die ausgewählte Bilder extern bearbeiten/anzeigen können.
 

Funktions-Zusatzmodul: Skript

Dieses Funktions-Zusatzmodul ruft das Skript cPicture.bat mit 5 Parametern auf.

Beispiel für cPicture.bat :

@echo OFF

echo name  =%1
echo file  =%2
echo path  =%3
echo width =%4
echo height=%5

pause

Beispielausgabe:

name ="C:\Documents and Settings\jurgene\Desktop\cPicture\IMG_6038.JPG"
file ="IMG_6038.JPG"
path ="C:\Documents and Settings\jurgene\Desktop\cPicture\"
width =2272
height=1704

 

Download Funktions-Zusatzmodul (88KB)
Installation: Funktions-Zusatzmodule werden einfach in das gleiche Verzeichnis wie cPicture kopiert. Legen Sie ihre Skriptdateien auch im gleichen Ordner ab. Maximal können 10 Skripte geladen werden.

 

Aufruf

Ein Funktions-Zusatzmodul kann entweder direkt für ausgewählte Bilder gestartet werden:

oder in einer Aktion ausgeführt werden:

 

Aufbau und arbeitsweise:

Ein Funktions-Zusatzmodul wird in 3 Schritten aufgerufen.
Folgendes Beispiel gibt für jeden Schritt ein entsprechendes Nachrichtenfenster aus.

Schritt 1:
Die Funktion start(...) wird mit einer Liste aller ausgewählten Bilder aufgerufen.
Im ersten Beispiel werden alle Bilder in einem Nachrichtenfenster ausgegeben:

struct request_info __stdcall CFunctionPluginSample1::start(HWND hwnd, const vector<const TCHAR*>& file_list)
{
    CString list(_T("start\n------\n"));
    for(vector<const TCHAR*>::const_iterator it = file_list.begin(); it != file_list.end(); ++it)
    {
        list += *it;
        list += _T("\n");
    }

    AfxMessageBox(list, MB_ICONINFORMATION);

    return request_info();
}

 

 

Schritt 2:
Für jedes einzelne ausgewählte Bild wird die Funktion process_picture(...) aufgerufen:

bool __stdcall CFunctionPluginSample1::process_picture(const picture_data& _picture_data)
{
    const CString msg(_T("process picture:\n"));
    AfxMessageBox(msg + _picture_data.m_name, MB_ICONINFORMATION);

    return true;
}

Mit dem Rückgabewert von start(...) kann für jedes einzelne Bild zusätzliche Bilddaten bereitgestellt werden.
Damit lassen sich sehr einfach externe Anzeigeanwendungen erstellen (siehe Beispiele unten) oder auch einfach nur ein Skript oder externes Programm aufrufen.
Wird 'false' in process_picture(...) zurückgegeben, wird die Ausführung beendet.

 

 

Schritt 3:
Zum Schluss wird die Funktion end() aufgerufen:

const vector<update_info>& __stdcall CFunctionPluginSample1::end()
{
    AfxMessageBox(_T("end"), MB_ICONINFORMATION);
    return m_update_info;
}

Mit dem Rückgabewert wird festgelegt, welche Bilder geändert/gelöscht oder hinzugefügt wurden.
cPicture passt dann entsprechend die Anzeige an.

 

 

Download Source code (9KB), Funktions-Zusatzmodul (148KB)
 

Weitere Beispiele:

Folgende zwei Beispiele zeigen weitere Anwendungsmöglichkeiten.

Dieses Beispiel zeigt eine einfache Bildanzeige:
Download Source code (12KB), Funktions-Zusatzmodul (176KB)
 

 

Dieses Beispiel zeigt ein Bestellprogramm für Bilder:
(Dieses Beispiel ist nicht funktionsfähig, d.h. es können keine Bilder bestellt werden, sondern dient nur als Programmvorlage.)
Download Source code (14KB), Funktions-Zusatzmodul (192KB)