/****************************************************************************
 ARexx Skript zur automatischen Erzeugung von Thumbnails mit PBMplus und
 anschliessender Übername der Daten in DataBase.

 Dazu muß   - DataBase laufen und die 'picbasePBM.db' Datei geladen sein

 Das ARexx Skript sollte durch das Skript 'PictureBasePBM' aufgerufen werden.
 02.09.94, Jörg Richter
*****************************************************************************/

PARSE ARG argline
PARSE VAR argline path source bild length DB .
/*
   path   = Pfad für das erzeugte Thumbnail
   source = Quellpfad der Bilder
   bild   = Pfad und Name des eigentlichenen Bildes
   length = Dateilänge des Bildes
   DB     = Pfad von Database
*/

OPTIONS RESULTS

DIAsize = 120  /* Vorschaugröße */

IF RIGHT(path,1) ~= "/" THEN DO
  IF RIGHT(path,1) ~= ":" THEN
    path = path || "/"
END

path = path || DelStr(bild,1,Length(source))

pos = MAX(LastPos("/",bild),LastPos(":",bild))+1
bildname = SubStr(bild,pos,Length(bild)-pos+1)    /* Bildname ermitteln */

path = SubStr(path,1,Length(path)-Length(bildname))

IF Exists(path || bildname) = 1 THEN /* Falls Thumbnail schon existiert */
  EXIT                           /* weiter mit nächsten Bild        */

ADDRESS DataBase
Message "Bearbeite " || bild || " ..."

ADDRESS COMMAND

'PBMBIN:filetype ' || bild
type = RC

IF type >= 10 THEN
  EXIT
IF type = 0 THEN
  'PBMBIN:ilbmtoppm > JPEGTMP:t.ppm ' || bild
IF type = 1 THEN
  'PBMBIN:giftopnm > JPEGTMP:t.ppm ' || bild
IF type = 2 THEN
  'PBMBIN:Djpeg > JPEGTMP:t.ppm ' || bild

ADDRESS
bool = Open(file,'JPEGTMP:t.ppm',R)
str = ReadLn(file)
str = ReadLn(file)
width = WORD(str,1)
height = WORD(str,2)
bool = Close(file)
ADDRESS COMMAND

'PBMBIN:pnmscale > JPEGTMP:s.ppm -xysize ' || DIAsize || ' ' || DIAsize || ' JPEGTMP:t.ppm'
'C:Delete > NIL: JPEGTMP:t.ppm'
'PBMBIN:ppmtoilbm > ' || path || bildname || ' -fs -mp 8 -map PBMBIN:cmap.ppm JPEGTMP:s.ppm'
'C:Delete > NIL: JPEGTMP:s.ppm'

ADDRESS DataBase

Add                                 /* neuen Datensatz hinzufügen          */
PutData $F1 bild                    /* Orginalbildname und -pfad in Feld 1 */
PutData $F2 length                  /* Dateilänge des Bildes in Feld 2     */
PutData $F3 width || "x" || height  /* Bildbreite und -höhe in Feld 3      */
IF Compare(UPPER(DB),UPPER(SubStr(path,1,Length(DB)))) = 0 THEN
  path = DelStr(path,1,Length(DB)+1)

PutData $F4 path || bildname        /* Pfad/Name des Thumbnails in Feld 4  */
                                    /* Falls der Pfad teilweise mit dem    */
                                    /* Pfad von DataBase übereinstimmt,    */
                                    /* wird dieser Teil vorher einfernt    */

