{"id":442,"date":"2024-02-14T16:09:47","date_gmt":"2024-02-14T15:09:47","guid":{"rendered":"https:\/\/contecon.de\/picapportwiki\/?page_id=442"},"modified":"2024-03-28T15:11:31","modified_gmt":"2024-03-28T14:11:31","slug":"picapport-plug-in-guide","status":"publish","type":"page","link":"https:\/\/contecon.de\/picapportwiki\/picapport-plug-in-guide\/","title":{"rendered":"PicApport Plug-in Guide (DE)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"442\" class=\"elementor elementor-442\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a98702 e-flex e-con-boxed e-con e-parent\" data-id=\"9a98702\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1555ef4 elementor-widget elementor-widget-heading\" data-id=\"1555ef4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-default\">PicApport Plug-in Guide<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ced9de8 e-flex e-con-boxed e-con e-parent\" data-id=\"ced9de8\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-41c3233 elementor-widget elementor-widget-heading\" data-id=\"41c3233\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Allgemeines<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b17eda e-flex e-con-boxed e-con e-parent\" data-id=\"5b17eda\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70372ed elementor-widget elementor-widget-text-editor\" data-id=\"70372ed\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.19.0 - 07-02-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t<h3 id=\"PicApportPlug-inGuide-Versionen\">Versionen<\/h3><ul><li>Plug-ins wurden in Version 4.0.0 eingef\u00fchrt. Alles was man ben\u00f6tigt ist\u00a0<em><strong>picapport.jar<\/strong><\/em>\u00a0oder\u00a0<em><strong>picapport.exe<\/strong><\/em>\u00a0mit Version 4.0 oder h\u00f6her.<br \/><br \/><\/li><li>Seit Version 6.2 kann das Zielverzeichnis der Stellvertreterdateien (Shadow-Files) eingestellt werden:<br \/><em><strong>plugin.shadow.path<\/strong><\/em>\u00a0(Pfad zu den Schattendateien\/Substitutdateien(Shadow-Files) (*.$.jpg Dateien))<br \/>Wenn gesetzt, werden beim n\u00e4chsten Serverstart vorhandene S.jpg Dateien dort hin verschoben und Neue direkt dort angelegt.<br \/>Beispiel:\u00a0<em><strong>plugin.shadow.path=E\\:\\\\picaport\\\\shadow<\/strong><\/em><br \/><br \/><\/li><\/ul><h3 id=\"PicApportPlug-inGuide-Verf\u00fcgbarePlug-ins\">Verf\u00fcgbare\u00a0 Plug-ins<\/h3><p>Aktuell (Feb 2015) sind folgende Plug-ins verf\u00fcgbar. Aktualisierte Infos siehe:\u00a0<a class=\"external-link\" href=\"http:\/\/picapport.de\/plugins.php\" rel=\"nofollow\">http:\/\/picapport.de\/plugins.php<\/a><\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-71cb5bf e-flex e-con-boxed e-con e-parent\" data-id=\"71cb5bf\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-578984f elementor-widget elementor-widget-text-editor\" data-id=\"578984f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<table border=\"0\" cellspacing=\"0\"><colgroup span=\"6\" width=\"85\"><\/colgroup><tbody><tr><td align=\"center\" height=\"32\"><b><span style=\"font-family: Liberation Serif;\">Download Dateiname<\/span><\/b><\/td><td align=\"center\"><b><span style=\"font-family: Liberation Serif;\">Unterst\u00fctzte<br \/>Dateitypen<\/span><\/b><\/td><td colspan=\"2\" align=\"center\"><b><span style=\"font-family: Liberation Serif;\">Anmerkungen<\/span><\/b><\/td><td align=\"center\"><b><span style=\"font-family: Liberation Serif;\">Wie wird installiert:<\/span><\/b><\/td><td align=\"left\">\u00a0<\/td><\/tr><tr><td rowspan=\"2\" align=\"left\" height=\"34\"><b><i><span style=\"font-family: Liberation Serif;\">PicApportDc<br \/>RawPlugin.zip<br \/><br \/><a href=\"http:\/\/picapport.de\/plugins.php\">http:\/\/picapport.de\/plugins.php<\/a><br \/>Basierend auf<br \/>Dave Coffin&#8217;s dcraw\u00a0<br \/><br \/><a href=\"https:\/\/www.cybercom.net\/~dcoffin\/dcraw\/\">https:\/\/www.cybercom.net\/~dcoffin\/dcraw\/<\/a><br \/>sowie Mozillas mozjpeg<br \/><br \/><a href=\"https:\/\/github.com\/mozilla\/mozjpeg\">https:\/\/github.com\/mozilla\/mozjpeg<\/a>\u00a0unterst\u00fctzt<br \/>dieses Plug-in nahezu<br \/>alle wichtigen<br \/>RAW-Formate.<br \/>Folgende Metadaten<br \/>werden unterst\u00fctzt:<br \/>title (set to<br \/>original filename)<br \/>creation date<br \/>Camera<br \/>ISO speed<br \/>Shutter<br \/>Aperture<br \/>Focal length<\/span><\/i><\/b><\/td><td rowspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">.3fr<br \/>Hasselblad RAW<br \/>.arw<br \/>Sony RAW<br \/>.cr2<br \/>Canon RAW<br \/>.crw<br \/>Canon RAW<br \/>.dcr<br \/>Kodak RAW<br \/>.dng<br \/>Adobe DNG<br \/>.erf<br \/>Epson RAW<br \/>.kdc<br \/>Kodak RAW<br \/>.mef<br \/>Mamiya RAW<br \/>.mos<br \/>Leaf Mosaic RAW<br \/>.mrw<br \/>Minolta RAW<br \/>.nef<br \/>Nikon RAW<br \/>.nrw<br \/>Nikon RAW<br \/>.orf<br \/>Olympus RAW<br \/>.pef<br \/>Pentax RAW<br \/>.raf<br \/>Fuji RAW<br \/>.raw<br \/>Panasonic RAW<br \/>.rw2<br \/>Panasonic RAW<br \/>.sr2<br \/>Sony RAW<br \/>.srf<br \/>Sony RAW<br \/>.srw<br \/>Samsung RAW<br \/>.x3f<br \/>Sigma RAW<\/span><\/td><td colspan=\"4\" rowspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">F\u00fcr Linux Anwender:<br \/>Die Pakete f\u00fcr\u00a0dcraw\u00a0und<br \/>cjpeg\u00a0(libjpeg) m\u00fcssen manuell<br \/>installiert werden:<br \/>Beispiel f\u00fcr Debian:<br \/>apt-get install dcraw<br \/>apt-get install libjpeg-progs<br \/><br \/>F\u00fcr OS X Anwender<br \/>(1)\u00a0Homebrew\u00a0installieren:<br \/><br \/>\/usr\/bin\/ruby\u00a0-e\u00a0&#8222;$(curl -fsSL\u00a0<a href=\"https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)\">https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install)<\/a>&#8222;<\/span><\/td><\/tr><tr><td colspan=\"3\" align=\"left\" height=\"106\"><span style=\"font-family: Liberation Serif;\">\u00a0Es werden Command line tools von X-Code\u00a0herunter geladen und installiert.Webseite f\u00fcr Homebrew:\u00a0<a href=\"https:\/\/brew.sh\/\">https:\/\/brew.sh<\/a><br \/>(2)\u00a0dcraw installieren<br \/><br \/>brew\u00a0install\u00a0dcraw<\/span><\/td><td align=\"left\">\u00a0<\/td><td align=\"left\">\u00a0<\/td><td rowspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">Die OS X Doku wurde freundlicherweise von\u00a0<a href=\"http:\/\/itmotions.de\/\">http:\/\/itmotions.de<\/a>\u00a0zur Verf\u00fcgung gestellt.<br \/><br \/>Als Option im<br \/>Windows-Installer<br \/>oder<br \/>Zip-Datei des Plug-ins<br \/>in das Plug-in-Verzeichnis<br \/>kopieren<br \/>PicApport neu starten<\/span><\/td><\/tr><tr><td align=\"left\" height=\"17\">\u00a0<\/td><td align=\"left\">\u00a0<\/td><td align=\"left\">\u00a0<\/td><td align=\"left\">\u00a0<\/td><td align=\"left\">\u00a0<\/td><\/tr><tr><td align=\"left\" height=\"256\"><b><i><span style=\"font-family: Liberation Serif;\">PicApportJavaImage<br \/>Plugin-1.0.zip<br \/><br \/><a href=\"http:\/\/picapport.de\/plugins.php\">http:\/\/picapport.de\/plugins.php<\/a><br \/>Einfaches Plug-in<br \/>basierend auf Java<br \/>imageIO und<br \/>TwelveMonkeys.<br \/>Unterst\u00fctzte Metadaten:<br \/>title (enth\u00e4lt<br \/>original Dateiname)<\/span><\/i><\/b><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">.bmp<br \/>.gif<br \/>.png<br \/>.psd<br \/>.tif<br \/>.tiff<\/span><\/td><td colspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">Aktuelle Version 1.1 Stand Dezember 2019<\/span><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">Als Option im<br \/>Windows-Installer<br \/>oder<br \/>Zip-Datei des Plug-ins<br \/>in das Plug-in-Verzeichnis<br \/>kopieren<br \/>PicApport neu starten<\/span><\/td><td align=\"left\">\u00a0<\/td><\/tr><tr><td align=\"left\" height=\"674\"><b><i><span style=\"font-family: Liberation Serif;\">PicApportOpenCv<br \/>VideoPluginWindows.zip<br \/>PicApportOpenCv<br \/>VideoPluginLinux.zip<br \/><br \/><a href=\"http:\/\/picapport.de\/plugins.php\">http:\/\/picapport.de\/plugins.php<\/a><br \/>Dieses Plugin gibt<br \/>es zur Zeit nur in der<br \/>Windows-Variante.<br \/>(Linux-Variante in Planung)<br \/>Das Plug-in basiert auf<br \/>JavaCV (<br \/><a href=\"https:\/\/github.com\/bytedeco\/javacv\">https:\/\/github.com\/bytedeco\/javacv<\/a>)<br \/>welches wiederum<br \/>OpenCV<br \/>(<a href=\"http:\/\/opencv.org\/\">http:\/\/opencv.org\/<\/a>)<br \/>benutzt.<br \/>Das Plug-in erzeugt<br \/>eine Stellvertreter\u00a0.jpg<br \/>Datei anhand eines<br \/>Frames aus dem Video.<br \/>Unterst\u00fctzte Metadaten:<br \/>title (enth\u00e4lt<br \/>original Dateiname)<\/span><\/i><\/b><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">.mp4, video\/mp4<br \/>.ts, video\/MP2T<br \/>.3gp, video\/3gpp<br \/>.3g2, video\/3gpp2<br \/>.flv, video\/x-flv<br \/>.ogv, video\/ogg<br \/>.avi, video\/x-msvideo<br \/>.webm, video\/webm<br \/>.mpg, video\/mpeg<br \/>.mpeg, video\/mpeg<br \/>.m2v, video\/mpeg<br \/>.wmv, video\/x-ms-wmv<br \/>.mov, video\/quicktime<br \/>.divx,video\/divx<br \/>.mkv, video\/x-matroska<\/span><\/td><td colspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">Dieses Plugin wurde im Oktober 2017 durch\u00a0PicApportVideoThumbnailPlugin.zip\u00a0ersetzt welchen nu auch unter Linux l\u00e4uft.<\/span><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">Zip-Datei des Plug-ins<br \/>abh\u00e4ngig vom<br \/>Betriebssystem in das<br \/>Plug-in-Verzeichnis<br \/>kopieren<br \/>PicApport neu starten<\/span><\/td><td align=\"left\">\u00a0<\/td><\/tr><tr><td align=\"left\" height=\"405\"><b><i><span style=\"font-family: Liberation Serif;\">PicApportPdfPlugin.zip<br \/><br \/><a href=\"http:\/\/picapport.de\/plugins.php\">http:\/\/picapport.de\/plugins.php<\/a><br \/>Basierend auf Apache&#8217;s<br \/>PDFBox, zeigt dieses<br \/>Plug-in die 1. Seite<br \/>eines PDF-Dokumentes<br \/>angereichert mit<br \/>folgenden Metadaten:<br \/>title (set to<br \/>original filename)<br \/>creation date<br \/>creator \/ author<br \/>title<br \/>keywords (tags)<br \/>description<br \/>(subject)<\/span><\/i><\/b><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">pdf<\/span><\/td><td colspan=\"2\" align=\"left\"><span style=\"font-family: Liberation Serif;\">\u00a0<\/span><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">Als Option im<br \/>Windows-Installer<br \/>oder<br \/>Zip-Datei des Plug-ins<br \/>in das Plug-in-Verzeichnis<br \/>kopieren<br \/>PicApport neu starten<\/span><\/td><td align=\"left\">\u00a0<\/td><\/tr><tr><td align=\"left\" height=\"569\"><b><i><span style=\"font-family: Liberation Serif;\">PicApportVideoThumbnailPlugin.zip<br \/><a href=\"https:\/\/www.picapport.de\/de\/plugins.php\">https:\/\/www.picapport.de\/de\/plugins.php<\/a><br \/>Unterst\u00fctzte Betriebssysteme:<br \/>Linux (Debian, Raspberry, etc..)<br \/>Windows<br \/>Das Plug-in basiert auf<br \/>JavaCV (<br \/><a href=\"https:\/\/github.com\/bytedeco\/javacv\">https:\/\/github.com\/bytedeco\/javacv<\/a>)<br \/>welches wiederum<br \/>OpenCV<br \/>(<a href=\"http:\/\/opencv.org\/\">http:\/\/opencv.org\/<\/a>)<br \/>benutzt.<br \/>Das Plug-in erzeugt<br \/>eine Stellvertreter\u00a0.jpg<br \/>Datei anhand eines<br \/>Frames aus dem Video.<br \/>Unterst\u00fctzte Metadaten:<br \/>title (enth\u00e4lt<br \/>original Dateiname)<\/span><\/i><\/b><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">.mp4, video\/mp4<br \/>.ts, video\/MP2T<br \/>.3gp, video\/3gpp<br \/>.3g2, video\/3gpp2<br \/>.flv, video\/x-flv<br \/>.ogv, video\/ogg<br \/>.avi, video\/x-msvideo<br \/>.webm, video\/webm<br \/>.mpg, video\/mpeg<br \/>.mpeg, video\/mpeg<br \/>.m2v, video\/mpeg<br \/>.wmv, video\/x-ms-wmv<br \/>.mov, video\/quicktime<br \/>.divx,video\/divx<br \/>.mkv, video\/x-matroska<\/span><\/td><td colspan=\"2\" align=\"left\"><b><span style=\"font-family: Liberation Serif;\">Bitte stellen Sie unbedingt sicher das evtl. installierte alte\u00a0Videoplugin\u00a0\u00a0PicApportOpenCvVideoPluginWindows\u00a0zu l\u00f6schen.<br \/>Schritte um das evtl. installierte alte PicApportOpenCvVideoPluginWindows Plugin zu deinstallieren:<br \/>Den PicApport Server stoppen<br \/>Verzeichnis entfernen:\u00a0.picapport\/plugins\/PicApportOpenCvVideoPluginWindows<br \/>Zipdatei entfernen:\u00a0.picapport\/plugins\/PicApportOpenCvVideoPluginWindows.zip<br \/>Aktuelle Version 1.4.0 Stand Dezember 2019.<br \/>Unterst\u00fctzte Plattformen:<br \/>linux\/arm64<br \/>linux\/armhf<br \/>linux\/ppc64le<br \/>linux\/x86_64<br \/>linux\/x86<br \/>macOS\/x86_64<br \/>Raspberry PI 4<br \/>windows\/x86_64<br \/>windows\/x86<\/span><\/b><\/td><td align=\"left\"><span style=\"font-family: Liberation Serif;\">Windows-Installer benutzen<br \/>oder<br \/>Zip-Datei des Plug-ins<br \/>in das Plug-in-Verzeichnis<br \/>kopieren<br \/>PicApport neu starten<\/span><\/td><td align=\"left\">\u00a0<\/td><\/tr><\/tbody><\/table>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5b553a e-flex e-con-boxed e-con e-parent\" data-id=\"f5b553a\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-637aeb8 elementor-widget elementor-widget-heading\" data-id=\"637aeb8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Installation (manuell ohne Installer)<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fb7e8ad e-flex e-con-boxed e-con e-parent\" data-id=\"fb7e8ad\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fa6f10 elementor-widget elementor-widget-text-editor\" data-id=\"1fa6f10\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Bevor ein Plug-in installiert wird, muss bekannt sein, wo das\u00a0<em><strong>.picapport<\/strong><\/em>\u00a0Verzeichnis des Servers liegt.<\/p><p>W\u00e4hrend des Serverstarts wird das Plug-in Verzeichnis etwa wie folgt angezeigt::\u00a0<em><strong>MSG\u00a0 @ 14:56:03.268 Search for plugins in C:\\Users\\username\\.picapport\\plugins<\/strong><\/em><\/p><p>Die gew\u00fcnschten Plug-ins einfach in das\u00a0\u00a0<em><strong>.picapport\/plugins<\/strong><\/em>\u00a0Verzeichnis kopieren und den PicApport Server neu starten. Fertig.<\/p><p>Nachdem der Server neu gestartet wurde kann anhand der aktuellen Logdatei in\u00a0\u00a0<em><strong>.picapport\/logfiles<\/strong><\/em>\u00a0gepr\u00fcft werden, ob die Plug-in Installation<br \/>erfolgreich war. Abh\u00e4ngig vom Plug-in Typ sollte die Logdatei etwa folgenden Text enthalten:<\/p><p>&#8230;&#8230;..<br \/>MSG @ 14:53:18.045 Plugin loaded: PicApport GIF plugin 1.0 (c) 2014 Contecon Software GmbH\u00a0<span style=\"color: #ff0000;\">.gif<\/span>\u00a0image\/gif\u00a0(hideSubstitutes=true) implements IOtherFileFormat<br \/>MSG @ 14:53:18.045 Plugin loaded: PicApport PNG plugin 1.0 (c) 2014 Contecon Software GmbH\u00a0<span style=\"color: #ff0000;\">.png<\/span>\u00a0image\/png\u00a0(hideSubstitutes=true) implements IOtherFileFormat<br \/>MSG @ 14:53:18.047 Plugin loaded: PicApport PDF plugin 1.0 (c) 2015 Contecon Software GmbH\u00a0<span style=\"color: #ff0000;\">.pdf<\/span>\u00a0application\/pdf\u00a0(hideSubstitutes=true) implements IOtherFileFormat<br \/>&#8230;&#8230;<\/p><p><span style=\"color: #ff0000;\">Rot<\/span>\u00a0zeigt die Dateierweiterung f\u00fcr die dieses Plug-in registriert ist und\u00a0gr\u00fcn\u00a0den mime-type der Originaldatei.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0817ca6 e-flex e-con-boxed e-con e-parent\" data-id=\"0817ca6\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fdc289a elementor-widget elementor-widget-heading\" data-id=\"fdc289a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Wie es funktioniert<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7f731f1 e-flex e-con-boxed e-con e-parent\" data-id=\"7f731f1\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-954b662 elementor-widget elementor-widget-text-editor\" data-id=\"954b662\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Dies ist eigentlich nur f\u00fcr Administratoren bzw. Programmierer interessant.<\/p><h3 id=\"PicApportPlug-inGuide-StartvonPicApport\">Start von PicApport<\/h3><ul><li>W\u00e4hrend des Starts wird das\u00a0<em><strong>.picapport\/plugins<\/strong>\u00a0<\/em>Verzeichnis nach\u00a0<em><strong>.zip<\/strong><\/em>\u00a0Dateien durchsucht.<\/li><li>F\u00fcr jede gefundene\u00a0<em><strong>.zip<\/strong><\/em>\u00a0Datei wird ein verstecktes Verzeichnis mit dem selben Namen erzeugt und der Inhalt<br \/>der .zip Datei hineinkopiert. Dieses Verzeichnis wird\u00a0<em><strong>plugin-directory<\/strong><\/em>\u00a0genannt.<\/li><li><p>Dann wird f\u00fcr jede\u00a0<em><strong>.jar<\/strong><\/em>\u00a0Datei im\u00a0<em><strong>plugin-directory<\/strong><\/em>\u00a0die\u00a0<em><strong>Manifest.mf\u00a0<\/strong><\/em>Datei nach einem g\u00fcltigen\u00a0<em><strong>PicApport-Plugin:<\/strong><\/em>\u00a0Eintrag untersucht<\/p><\/li><li>Die<em><strong>\u00a0init()<\/strong><\/em>\u00a0Methode des Plug-ins wird gerufen (einmalig w\u00e4hrend des Starts)<br \/>Die folgenden Informationen werden an die\u00a0<em><strong>Init()<\/strong><\/em>\u00a0Methode \u00fcbergeben::<br \/><ul><li><p>File\u00a0<em><strong>pluginDirectory<\/strong><\/em><br \/>Verzeichnis von wo das Plug-in geladen wurde. Diese Information kann vom Plug-in genutzt werden um z.B. weitere<br \/>Konfigurationsdaten zu speichern.<br \/>Ein Plug-in sollte nicht auf Daten au\u00dferhalb des Plugin-Directorys zugreifen.<\/p><\/li><li><p>Properties\u00a0<em><strong>props<\/strong><\/em><br \/>Wenn eine\u00a0<em><strong>.properties<\/strong><\/em>\u00a0Datei mit dem selben Namen wie das Plug-in existiert, wird diese von PicApport geladen und an die\u00a0<em><strong>init()<\/strong><\/em>\u00a0Methode\u00a0<br \/>des Plug-ins \u00fcbergeben. Ein Plug-in Entwickler sollte sicherstellen, dass\u00a0<em><strong>props<\/strong>\u00a0<\/em>an den Konstruktor der\u00a0<em><strong>OtherFormatsDescriptor<\/strong>\u00a0<\/em>Instanzen<br \/>\u00fcbergeben wird, die w\u00e4hrend\u00a0<em><strong>init()<\/strong><\/em>\u00a0erzeugt werden.<br \/>Das Plug-in kann die Properties nutzen um weitere Konfigurationsdaten zu speichern. Siehe auch\u00a0<em><strong>PicApportPdfPlugin-src.zip<\/strong><\/em>\u00a0wie dies verwendet werden kann.<br \/>Beispiel:\u00a0<em><strong>PicApportPdfPlugin.properties<\/strong><\/em>:<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeContent panelContent pdl\"><div><div id=\"highlighter_183548\" class=\"syntaxhighlighter sh-confluence nogutter  text\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"code\"><div class=\"container\" title=\"Hint: double-click to select code\"><div class=\"line number1 index0 alt2\"><code class=\"text plain\"># if resolution is not set the default will be 96<\/code><\/div><div class=\"line number2 index1 alt1\"><code class=\"text plain\">pdf.resolution=96<\/code><\/div><div class=\"line number3 index2 alt2\">\u00a0<\/div><div class=\"line number4 index3 alt1\"><code class=\"text plain\">menudownload.text=Show PDF<\/code><\/div><div class=\"line number5 index4 alt2\"><code class=\"text plain\">menudownload.text.en=Show PDF<\/code><\/div><div class=\"line number6 index5 alt1\"><code class=\"text plain\">menudownload.text.de=PDF anzeigen<\/code><\/div><div class=\"line number7 index6 alt2\">\u00a0<\/div><div class=\"line number8 index7 alt1\"><code class=\"text plain\">keywords=$nonjpg<\/code><\/div><\/div><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><p>Der Eintrag\u00a0<em><strong>menudownload.text[.iso language]<\/strong><\/em>\u00a0kann verwendet werden um den Text des &#8222;Download-Buttons&#8220; in der PicApport Slideshow anzupassen.<br \/>Ist kein Text f\u00fcr die aktuelle Sprache konfiguriert, wird der Eintrag (<em><strong>menudownload.text<\/strong><\/em>) benutzt. (Solle immer Englisch sein)<\/p><\/li><li><p>IPicApportPlugInLogger\u00a0<strong><em>logger<\/em><\/strong><br \/>Der\u00a0<em><strong>logger<\/strong><\/em>\u00a0sollte in den privaten Memberdaten der Plug-in Instanz gesichert werden und f\u00fcr Debug Ausgaben verwendet werden.<\/p><\/li><\/ul><\/li><li><p>Die\u00a0<strong><em>init()<\/em><\/strong>\u00a0Methode muss mindestens eine<strong><em>\u00a0OtherFormatsDescriptor<\/em>\u00a0<\/strong>Instanz erzeugen und in\u00a0<em><strong>\u00a0List&lt;OtherFormatsDescriptor&gt;<\/strong><\/em>\u00a0zur\u00fcckgeben.<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Descriptoren erzeugen<\/b><\/div><div class=\"codeContent panelContent pdl\"><div><div id=\"highlighter_547945\" class=\"syntaxhighlighter sh-confluence nogutter  java\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"code\"><div class=\"container\" title=\"Hint: double-click to select code\"><div class=\"line number1 index0 alt2\"><code class=\"java keyword\">return<\/code>\u00a0\u00a0<code class=\"java plain\">Arrays.asList(<\/code><\/div><div class=\"line number2 index1 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor[] {<\/code><\/div><div class=\"line number3 index2 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor(<\/code><code class=\"java string\">\".gif\"<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ One of the file extensions this plugin will be called<\/code><\/div><div class=\"line number4 index3 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"image\/gif\"<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ Mime type of the original file<\/code><\/div><div class=\"line number5 index4 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">true<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ If true, substitute files will be hidden<\/code><\/div><div class=\"line number6 index5 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"PicApport GIF plugin\"<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ Name of the plug-in<\/code><\/div><div class=\"line number7 index6 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"(c) 2014 Contecon Software GmbH\"<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ Copyright<\/code><\/div><div class=\"line number8 index7 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"1.0\"<\/code><code class=\"java plain\">,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ Version<\/code><\/div><div class=\"line number9 index8 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">props),\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java comments\">\/\/ always use props passed to the init() method<\/code><\/div><div class=\"line number10 index9 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number11 index10 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor(<\/code><code class=\"java string\">\".png\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number12 index11 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"image\/png\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number13 index12 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">true<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number14 index13 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"PicApport PNG plugin\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number15 index14 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"(c) 2014 Contecon Software GmbH\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number16 index15 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"1.0\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number17 index16 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">props),\u00a0\u00a0\u00a0<\/code><\/div><div class=\"line number18 index17 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">});<\/code><\/div><\/div><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><\/li><\/ul><h3 id=\"PicApportPlug-inGuide-W\u00e4hrenddesScannensderFotoVerzeichnisse\">W\u00e4hrend des Scannens der Foto Verzeichnisse<\/h3><ul><li>Wenn PicApport ein Foto-Verzeichnis scannt, werden alle nicht Jpeg-Dateien gepr\u00fcft ob daf\u00fcr ein Plug-in registriert wurde.<\/li><li>Wurde ein Plug-in registered:<ul><li>PicApport pr\u00fcft ob eine Stellvertreter-Datei (substitute-file) existiert\u00a0<br \/>Die Stellvertreter-Datei ist die\u00a0<em><strong>jpg<\/strong>\u00a0<\/em>Repr\u00e4sentation der Originaldatei. PicApport f\u00fcgt\u00a0<em><strong>.$.jpg<\/strong><\/em>\u00a0an den Namen der Originaldatei an um den Stellvertreter Namen zu erzeugen.<br \/>Wenn die Stellvertreter-Datei nicht existiert oder \u00e4lter ist als die Originaldatei wird die\u00a0<strong><em>createJpegFile()<\/em><\/strong>\u00a0Methode des Plug-ins gerufen um die Stellvertreter-Datei zu erzeugen.<br \/>Die folgenden Informationen werden an die\u00a0<strong><em>createJpegFile()<\/em><\/strong>\u00a0Methode \u00fcbergeben:<ul><li><p>File\u00a0<em><strong>otherFormatFile<\/strong><\/em><br \/>Vollst\u00e4ndiger Pfad der Originaldatei<\/p><\/li><li><p>File\u00a0<em><strong>jpegFileToCreate<\/strong><\/em><br \/>Vollst\u00e4ndiger Pfad der zu erzeugenden Stellvertreter-Datei<\/p><\/li><li><p>CcXMPMetaData\u00a0<strong>metaDataIn<\/strong><br \/>Optionale Metadaten f\u00fcr die Stellvertreter-Datei. Sind keine Metadaten verf\u00fcgbar sollte\u00a0<strong><em>createJpegFile()<\/em><\/strong>\u00a0null zur\u00fcckgeben.<br \/>Sind Metadaten verf\u00fcgbar, sollten diese in\u00a0<em><strong>metaDataIn<\/strong>\u00a0\u00a0<\/em>gesetzt werden und\u00a0\u00a0<em><strong>metaDataIn<\/strong>\u00a0sollte anstatt\u00a0<\/em>null zur\u00fcckgegeben werden.<br \/>Siehe auch: Javadoc\u00a0<a class=\"external-link\" href=\"http:\/\/picapport.de\/plugins\/javadoc\/\" rel=\"nofollow\">http:\/\/picapport.de\/plugins\/javadoc\/<\/a>\u00a0f\u00fcr weitere Details von CcXMPMetaData .<\/p><\/li><\/ul><\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a8777e e-flex e-con-boxed e-con e-parent\" data-id=\"1a8777e\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b85396 elementor-widget elementor-widget-heading\" data-id=\"3b85396\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Programmierung<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-22d6ac0 e-flex e-con-boxed e-con e-parent\" data-id=\"22d6ac0\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;boxed&quot;}\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55cae29 elementor-widget elementor-widget-text-editor\" data-id=\"55cae29\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div id=\"main-content\" class=\"wiki-content\"><p>Plug-ins werden in Java erstellt.<\/p><p>Es muss sichergestellt sein, dass ein\u00a0<em><strong>picapport.jar<\/strong><\/em>\u00a0mindestens mit Version 4.0.0 im classpath des Compilers eingetragen ist<\/p><p>Ein PicApport Plug-in zu erstellen ist sehr einfach. Einfach eine Java-Klasse erstellen die zwei Methoden implementiert:<\/p><ul><li><p>public List&lt;OtherFormatsDescriptor&gt;\u00a0<strong>init<\/strong>(File pluginDirectory, Properties props, IPicApportPlugInLogger logger)<\/p><\/li><li><p>public CcXMPMetaData\u00a0<strong>createJpegFile<\/strong>(File otherFormatFile, File jpegFileToCreate, CcXMPMetaData metaDataIn)<\/p><\/li><\/ul><p>Siehe auch: Javadoc\u00a0<a class=\"external-link\" href=\"http:\/\/picapport.de\/plugins\/javadoc\/\" rel=\"nofollow\">http:\/\/picapport.de\/plugins\/javadoc\/<\/a>\u00a0f\u00fcr weitere Details.<\/p><h3 id=\"PicApportPlug-inGuide-BeispielPicApportPlug-infor.gifand.pngUnterst\u00fctzung\">Beispiel PicApport Plug-in for .gif and .png Unterst\u00fctzung<\/h3><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>PicApportJavaImagePlugin<\/b><\/div><div class=\"codeContent panelContent pdl\"><div><div id=\"highlighter_754090\" class=\"syntaxhighlighter sh-confluence nogutter  java\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"code\"><div class=\"container\" title=\"Hint: double-click to select code\"><div class=\"line number1 index0 alt2\"><code class=\"java keyword\">package<\/code>\u00a0<code class=\"java plain\">de.contecon.picapport.plugin.javaimage;<\/code><\/div><div class=\"line number2 index1 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.awt.Color;<\/code><\/div><div class=\"line number3 index2 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.awt.Graphics2D;<\/code><\/div><div class=\"line number4 index3 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.awt.image.BufferedImage;<\/code><\/div><div class=\"line number5 index4 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.io.File;<\/code><\/div><div class=\"line number6 index5 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.util.Arrays;<\/code><\/div><div class=\"line number7 index6 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.util.Calendar;<\/code><\/div><div class=\"line number8 index7 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.util.Date;<\/code><\/div><div class=\"line number9 index8 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.util.List;<\/code><\/div><div class=\"line number10 index9 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">java.util.Properties;<\/code><\/div><div class=\"line number11 index10 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">javax.imageio.ImageIO;<\/code><\/div><div class=\"line number12 index11 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">de.contecon.imageutils.CcXMPMetaData;<\/code><\/div><div class=\"line number13 index12 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">de.contecon.picapport.plugins.IPicApportPlugInLogger;<\/code><\/div><div class=\"line number14 index13 alt1\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">de.contecon.picapport.plugins.otherformats.IOtherFileFormat;<\/code><\/div><div class=\"line number15 index14 alt2\"><code class=\"java keyword\">import<\/code>\u00a0<code class=\"java plain\">de.contecon.picapport.plugins.otherformats.OtherFormatsDescriptor;<\/code><\/div><div class=\"line number16 index15 alt1\"><code class=\"java preprocessor\">\/**<\/code><\/div><div class=\"line number17 index16 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* This is a simple example of a PicApport plugin.<\/code><\/div><div class=\"line number18 index17 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* To compile this at least a picapport.jar version 3.3 or newer is required.<\/code><\/div><div class=\"line number19 index18 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* This Plugin supports .gif and .png files.<\/code><\/div><div class=\"line number20 index19 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">*<\/code><\/div><div class=\"line number21 index20 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* PicApport plugins for other fileformats must implement de.contecon.picapport.plugins.otherformats.IOtherFileFormat<\/code><\/div><div class=\"line number22 index21 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">*<\/code><\/div><div class=\"line number23 index22 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* Please have in mind that a valid PicApport plugin .jar files MUST have a Manifest.mf file<\/code><\/div><div class=\"line number24 index23 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* with a PicApport-Plugin: entry.<\/code><\/div><div class=\"line number25 index24 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">*\u00a0<\/code><\/div><div class=\"line number26 index25 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* Example Manifest.mf:<\/code><\/div><div class=\"line number27 index26 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* &lt;pre&gt;<\/code><\/div><div class=\"line number28 index27 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* Manifest-Version: 1.0<\/code><\/div><div class=\"line number29 index28 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* Sealed: true<\/code><\/div><div class=\"line number30 index29 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* PicApport-Plugin: de.contecon.picapport.plugin.javaimage.JavaImagePlugin<\/code><\/div><div class=\"line number31 index30 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* &lt;pre&gt;<\/code><\/div><div class=\"line number32 index31 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* 10.02.2015<\/code><\/div><div class=\"line number33 index32 alt2\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">* @author Eric<\/code><\/div><div class=\"line number34 index33 alt1\"><code class=\"java spaces\">\u00a0<\/code><code class=\"java preprocessor\">*\/<\/code><\/div><div class=\"line number35 index34 alt2\"><code class=\"java keyword\">public<\/code>\u00a0<code class=\"java keyword\">class<\/code>\u00a0<code class=\"java plain\">JavaImagePlugin\u00a0<\/code><code class=\"java keyword\">implements<\/code>\u00a0<code class=\"java plain\">IOtherFileFormat {<\/code><\/div><div class=\"line number36 index35 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java keyword\">private<\/code>\u00a0<code class=\"java plain\">IPicApportPlugInLogger logger;<\/code><\/div><div class=\"line number37 index36 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number38 index37 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java color1\">@Override<\/code><\/div><div class=\"line number39 index38 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java keyword\">public<\/code>\u00a0<code class=\"java plain\">List&lt;OtherFormatsDescriptor&gt; init(File pluginDirectory, Properties props, IPicApportPlugInLogger logger) {<\/code><\/div><div class=\"line number40 index39 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">this<\/code><code class=\"java plain\">.logger = logger;<\/code><\/div><div class=\"line number41 index40 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number42 index41 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">return<\/code>\u00a0\u00a0<code class=\"java plain\">Arrays.asList(<\/code><\/div><div class=\"line number43 index42 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor[] {<\/code><\/div><div class=\"line number44 index43 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor(<\/code><code class=\"java string\">\".gif\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number45 index44 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"image\/gif\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number46 index45 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">true<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number47 index46 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"PicApport GIF plugin\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number48 index47 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"(c) 2014 Contecon Software GmbH\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number49 index48 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"1.0\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number50 index49 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">props),<\/code><\/div><div class=\"line number51 index50 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number52 index51 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">OtherFormatsDescriptor(<\/code><code class=\"java string\">\".png\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number53 index52 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"image\/png\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number54 index53 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">true<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number55 index54 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"PicApport PNG plugin\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number56 index55 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"(c) 2014 Contecon Software GmbH\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number57 index56 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java string\">\"1.0\"<\/code><code class=\"java plain\">,<\/code><\/div><div class=\"line number58 index57 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">props),\u00a0\u00a0\u00a0<\/code><\/div><div class=\"line number59 index58 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">});\u00a0\u00a0<\/code><\/div><div class=\"line number60 index59 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div><div class=\"line number61 index60 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number62 index61 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number63 index62 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number64 index63 alt1\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java color1\">@Override<\/code><\/div><div class=\"line number65 index64 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java keyword\">public<\/code>\u00a0<code class=\"java plain\">CcXMPMetaData createJpegFile(File otherFormatFile, File jpegFileToCreate, CcXMPMetaData metaDataIn)\u00a0<\/code><code class=\"java keyword\">throws<\/code>\u00a0<code class=\"java plain\">Exception {<\/code><\/div><div class=\"line number66 index65 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">BufferedImage bi = ImageIO.read(otherFormatFile);<\/code><\/div><div class=\"line number67 index66 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number68 index67 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">BufferedImage bufferedImageJpg =\u00a0<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_INT_RGB);<\/code><\/div><div class=\"line number69 index68 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Graphics2D g2 = bufferedImageJpg.createGraphics();<\/code><\/div><div class=\"line number70 index69 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">g2.drawImage(bi,\u00a0<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">,\u00a0<\/code><code class=\"java value\">0<\/code><code class=\"java plain\">, bufferedImageJpg.getWidth(), bufferedImageJpg.getHeight(), Color.WHITE,\u00a0<\/code><code class=\"java keyword\">null<\/code><code class=\"java plain\">);<\/code><\/div><div class=\"line number71 index70 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">javax.imageio.ImageIO.write(bufferedImageJpg,<\/code><code class=\"java string\">\"jpeg\"<\/code><code class=\"java plain\">, jpegFileToCreate);<\/code><\/div><div class=\"line number72 index71 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">g2.dispose();<\/code><\/div><div class=\"line number73 index72 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number74 index73 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">Calendar dateCreated = Calendar.getInstance();<\/code><\/div><div class=\"line number75 index74 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">dateCreated.setTime(<\/code><code class=\"java keyword\">new<\/code>\u00a0<code class=\"java plain\">Date(otherFormatFile.lastModified()));<\/code><\/div><div class=\"line number76 index75 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">metaDataIn.setCreationDate(dateCreated);<\/code><\/div><div class=\"line number77 index76 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">metaDataIn.setTitle(otherFormatFile.getName());<\/code><\/div><div class=\"line number78 index77 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java plain\">metaDataIn.setDescription(<\/code><code class=\"java string\">\"PicApport JavaImagePlugin\"<\/code><code class=\"java plain\">);<\/code><\/div><div class=\"line number79 index78 alt2\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code>\u00a0<\/div><div class=\"line number80 index79 alt1\"><code class=\"java spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"java keyword\">return<\/code><code class=\"java plain\">(metaDataIn);<\/code><\/div><div class=\"line number81 index80 alt2\"><code class=\"java spaces\">\u00a0\u00a0<\/code><code class=\"java plain\">}<\/code><\/div><div class=\"line number82 index81 alt1\"><code class=\"java plain\">}<\/code><\/div><\/div><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><h3 id=\"PicApportPlug-inGuide-DieManifestDatei\">Die Manifest Datei<\/h3><p>Ein PicApport Plug-in wird durch eine\u00a0<em><strong>.jar<\/strong><\/em>\u00a0Datei repr\u00e4sentiert. Diese<em><strong>\u00a0.jar<\/strong><\/em>\u00a0Datei\u00a0<strong>MUSS<\/strong>\u00a0eine\u00a0<em><strong>Manifest.mf<\/strong><\/em>\u00a0Datei enthalten mit einem\u00a0<strong><em>PicApport-Plugin:<\/em><\/strong>\u00a0Eintrag in welchem die Klasse deklariert wird, welche\u00a0<strong><em>de.contecon.picapport.plugins.otherformats.IOtherFileFormat<\/em><\/strong>\u00a0implementiert.<\/p><div class=\"code panel pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\"><div class=\"codeHeader panelHeader pdl\"><b>Manifest.mf<\/b><\/div><div class=\"codeContent panelContent pdl\"><div><div id=\"highlighter_251828\" class=\"syntaxhighlighter sh-confluence nogutter  text\"><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"code\"><div class=\"container\" title=\"Hint: double-click to select code\"><div class=\"line number1 index0 alt2\"><code class=\"text plain\">Manifest-Version: 1.0<\/code><\/div><div class=\"line number2 index1 alt1\"><code class=\"text plain\">Sealed: true<\/code><\/div><div class=\"line number3 index2 alt2\"><code class=\"text plain\">PicApport-Plugin: de.contecon.picapport.plugin.javaimage.JavaImagePlugin<\/code><\/div><\/div><\/td><\/tr><\/tbody><\/table><\/div><\/div><\/div><\/div><h3 id=\"PicApportPlug-inGuide-DiePlug-in.zipDatei\">Die Plug-in .zip Datei<\/h3><p>Als letzter Schritt wird eine\u00a0<em><strong>.zip<\/strong><\/em>\u00a0Datei f\u00fcr das Plug-in erstellt. Der Dateiname sollte dem Klassennamen des Plug-ins entsprechen.<\/p><p>Die\u00a0<em><strong>.zip<\/strong><\/em>\u00a0Datei muss mindestens folgende Dateien beinhalten::<\/p><ul><li>Die\u00a0<em><strong>.jar<\/strong><\/em>\u00a0Datei des Plug-ins<\/li><li>Die<strong>.<em>properties<\/em><\/strong>\u00a0Datei des Plug-ins<\/li><\/ul><p>Optionaler Inhalt k\u00f6nnte sein::<\/p><ul><li>Weitere\u00a0<em><strong>.jar<\/strong><\/em>\u00a0Dateien die vom Plug-in ben\u00f6tigt werden<\/li><li>Lizenz Informationen<\/li><li>Weitere Dateien<\/li><\/ul><\/div><div id=\"likes-and-labels-container\"><div id=\"labels-section\" class=\"pageSection group\"><div class=\"labels-section-content content-column\"><div class=\"labels-content\">\u00a0<\/div><\/div><\/div><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PicApport Plug-in Guide Allgemeines Versionen Plug-ins wurden in Version 4.0.0 eingef\u00fchrt. Alles was man ben\u00f6tigt ist\u00a0picapport.jar\u00a0oder\u00a0picapport.exe\u00a0mit Version 4.0 oder h\u00f6her. Seit Version 6.2 kann das Zielverzeichnis der Stellvertreterdateien (Shadow-Files) eingestellt werden:plugin.shadow.path\u00a0(Pfad zu den Schattendateien\/Substitutdateien(Shadow-Files) (*.$.jpg Dateien))Wenn gesetzt, werden beim n\u00e4chsten Serverstart vorhandene S.jpg Dateien dort hin verschoben und Neue direkt dort angelegt.Beispiel:\u00a0plugin.shadow.path=E:\\picaport\\shadow Verf\u00fcgbare\u00a0 Plug-ins Aktuell [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-442","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/pages\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":5,"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/pages\/442\/revisions"}],"predecessor-version":[{"id":1810,"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/pages\/442\/revisions\/1810"}],"wp:attachment":[{"href":"https:\/\/contecon.de\/picapportwiki\/wp-json\/wp\/v2\/media?parent=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}