#1  
Alt 10.03.2009
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard SimpleViewer Galerie erzeugen

Aktionstyp: Liste mit Bildern

Erzeugt aus den gewählten Bildern im Browser eine SimpleViewer Galerie. In den Zielordner müssen dann noch die Originaldateien: index.html swfobject.js viewer.swf kopiert werden und die Galerie läuft lokal im WebBrowser...

Code:
function PerformAction(Images: TICollection): Boolean;
var
   gallery: TStringList; baseFolder: String; img: TIImage;
   i, imageSize: Integer; bmp: TIBitmap; dlg: TIDialog;
   header: String;
begin
   Result := True;

   baseFolder := GetMyDocumentsPath;
   header     := 'Generated with Imabas';
   imageSize  := 480;

   //-- Abfragedialog --//
   dlg := TIDialog.Create('SimpleViewer Galerie erzeugen');
   try
      dlg.AddFolderControl('Ausgabeverzeichnis', baseFolder);
      dlg.AddStringControl('Überschrift', header);
      dlg.AddIntegerControl('Bildgröße',100,1024, imageSize);
      
      if ( not dlg.Execute ) then
         Exit;
   finally
      dlg.Free;
   end;

   //-- Verzeichnisse für die Bilder erzeugen --//
   CreateDir(baseFolder + 'images');
   CreateDir(baseFolder + 'thumbs');

   gallery := TStringList.Create;
   try
      gallery.Add('<?xml version="1.0" encoding="UTF-8"?>');
      gallery.Add('<simpleviewergallery');
      gallery.Add('   maxImageWidth="'+IntToStr(imageSize)+'"');
      gallery.Add('   maxImageHeight="'+IntToStr(imageSize)+'"');
      gallery.Add('   textColor="0xFFFFFF"');
      gallery.Add('   frameColor="0xFFFFFF"');
      gallery.Add('   frameWidth="0"');
      gallery.Add('   stagePadding="40"');
      gallery.Add('   navPadding="40"');
      gallery.Add('   thumbnailColumns="4"');
      gallery.Add('   thumbnailRows="4"');
      gallery.Add('   navPosition="left"');
      gallery.Add('   vAlign="center"');
      gallery.Add('   hAlign="center"');
      gallery.Add('   title="'+header+'"');
      gallery.Add('   enableRightClickOpen="true"');
      gallery.Add('   backgroundImagePath=""');
      gallery.Add('   imagePath=""');
      gallery.Add('   thumbPath=""');
      gallery.Add('>');

      ProgressWindow(Images.Count);
      try
         for i := 0 to Images.Count-1 do begin
            ProgressWindowStep;
            img := TIImage(Images[i]);

            gallery.Add(Format(
               '<image>'+
               '<filename>img%.4d.jpg</filename>'+
               '<caption><![CDATA[%s]]></caption>'+
               '</image>',
               [i, UTF8String(img.Caption)]
            ));

            //-- ThumbNail erzeugen --//
            bmp := img.ThumbBitmap;
            try
               bmp.SaveAsJPG(
                  Format('%sthumbs\img%.4d.jpg',[baseFolder, i])
                  ,80,False
               );
            finally
               bmp.Free;
            end;

            //-- Hauptbild erzeugen --//
            bmp := img.Bitmap;
            try
               bmp.ResizeLongSide(imageSize);
               bmp.AddSoftShadow(4,4,4,True,RGB(128,128,128),RGB(24,24,24),100);
               bmp.SaveAsJPG(
                  Format('%simages\img%.4d.jpg',[baseFolder, i])
                  ,80,False
               );
            finally
               bmp.Free;
            end;
         end;
      finally
         ProgressWindowHide;
      end;
      
      gallery.Add('</simpleviewergallery>');
      gallery.SaveToFile(baseFolder + 'gallery.xml');
   finally
      gallery.Free;
   end;
end;
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
  #2  
Alt 29.11.2010
bernd! bernd! ist offline
Troll
Registriert seit: 08.2004
Beiträge: 364
bernd! ist zur Zeit noch ein unbeschriebenes Blatt
Standard AW: SimpleViewer Galerie erzeugen

Hallo Kai
Gibt es zu dieser Aktion die Möglichkeit noch einen Link einzubauen damit die original Dateien aus einem Verzeichnis runtergeladen werden können? Es sind ja nur die Thumbs und dann die in der größe reduzierten Images vorhanden - parallel hätte ich gerne noch die Original Datei.

30.11.2010: Soweit bin ich nun schon gekommen

Zitat:
function PerformAction(Images: TICollection): Boolean;
var
gallery: TStringList; baseFolder: String; img: TIImage;
i, imageSize: Integer; bmp: TIBitmap; dlg: TIDialog;
header: String;
begin
Result := True;

baseFolder := GetMyDocumentsPath;
header := 'Generated with Imabas';
imageSize := 480;

//-- Abfragedialog --//
dlg := TIDialog.Create('SimpleViewer Galerie erzeugen');
try
dlg.AddFolderControl('Ausgabeverzeichnis', baseFolder);
dlg.AddStringControl('Überschrift', header);
dlg.AddIntegerControl('Bildgröße',100,1024, imageSize);

if ( not dlg.Execute ) then
Exit;
finally
dlg.Free;
end;

//-- Verzeichnisse für die Bilder erzeugen --//
CreateDir(baseFolder + 'images');
CreateDir(baseFolder + 'thumbs');

// -- Eingefügt BP am 2010-11-29 --//
CreateDir(baseFolder + 'pics');

gallery := TStringList.Create;
try
gallery.Add('<?xml version="1.0" encoding="UTF-8"?>');
gallery.Add('<simpleviewergallery');
gallery.Add(' maxImageWidth="'+IntToStr(imageSize)+'"');
gallery.Add(' maxImageHeight="'+IntToStr(imageSize)+'"');
gallery.Add(' textColor="0xFFFFFF"');
gallery.Add(' frameColor="0xFFFFFF"');
gallery.Add(' frameWidth="0"');
gallery.Add(' stagePadding="40"');
gallery.Add(' navPadding="40"');
gallery.Add(' thumbnailColumns="4"');
gallery.Add(' thumbnailRows="4"');
gallery.Add(' navPosition="left"');
gallery.Add(' vAlign="center"');
gallery.Add(' hAlign="center"');
gallery.Add(' title="'+header+'"');
gallery.Add(' enableRightClickOpen="true"');
gallery.Add(' backgroundImagePath=""');
gallery.Add(' imagePath=""');
gallery.Add(' thumbPath=""');
gallery.Add('>');

ProgressWindow(Images.Count);
try
for i := 0 to Images.Count-1 do begin
ProgressWindowStep;
img := TIImage(Images[i]);

gallery.Add(Format(
'<image>'+
'<filename>img%.4d.jpg</filename>'+
// -- '<caption><![CDATA[%s]]></caption>'+ --//

// -- geaender Bernd 2010-11-30 --//
'<caption><![CDATA[<u><a href="./pics/%s.jpg">Full Size Download</a></u>]]></caption>'+
'</image>',
[i, UTF8String(img.Caption)]
));

//-- ThumbNail erzeugen --//
bmp := img.ThumbBitmap;
try
bmp.SaveAsJPG(
Format('%sthumbs\img%.4d.jpg',[baseFolder, i])
,80,False
);
finally
bmp.Free;
end;

//-- Hauptbild erzeugen --//
bmp := img.Bitmap;
try
bmp.ResizeLongSide(imageSize);
bmp.AddSoftShadow(4,4,4,True,RGB(128,128,12,RGB( 24,24,24),100);
bmp.SaveAsJPG(
Format('%simages\img%.4d.jpg',[baseFolder, i])
,80,False
);
finally
bmp.Free;
end;
end;
finally
ProgressWindowHide;
end;

gallery.Add('</simpleviewergallery>');
gallery.SaveToFile(baseFolder + 'gallery.xml');
finally
gallery.Free;
end;
end;
Das Problem ist im Moment noch, dass ich nun unter dem Bild "Full Size Download" stehen habe, was aus folgender Zeile resultiert:

Zitat:
'<caption><![CDATA[<u><a href="./pics/%s.jpg">Full Size Download</a></u>]]></caption>'+
Eigentlich will ich aber "_DSC4711 - Full Size Download" dort stehen haben, was aber nicht klappt:

Zitat:
'<caption><![CDATA[%s <u><a href="./pics/%s.jpg">Full Size Download</a></u>]]></caption>'+
Viele Grüße, Bernd

Geändert von bernd! (30.11.2010 um 07:47 Uhr). Grund: ... ein wenig Code dazu :-)
Mit Zitat antworten
  #3  
Alt 14.12.2010
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard AW: SimpleViewer Galerie erzeugen

Hallo Bernd,

Zitat:
gallery.Add(Format(
'<image>'+
'<filename>img%.4d.jpg</filename>'+
// -- '<caption><![CDATA[%s]]></caption>'+ --//

// -- geaender Bernd 2010-11-30 --//
'<caption><![CDATA[<u><a href="./pics/%s.jpg">Full Size Download</a></u>]]></caption>'+
'</image>',
[i, UTF8String(img.Caption)]
));
Ich denke das Problem liegt im Format-Befehl, du musst schauen das die %-Zeichen auch auf richtigen Werte zeigen.

Format('%d - %s - %d' ,[47,'Elf',815]) ergibt '47 - Elf - 815' als String...

Dein %s in href="./pics/%s.jpg" wird also durch UTF8String(img.Caption) ersetzt...
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
Antwort
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Volumes automatisch erzeugen jdk1111 Imabas Allgemein 8 09.12.2008 14:57
5.6.0.20 Galerie erzeugen Ondrasch Galerien / XSL-Skripte 1 14.07.2005 13:31
ukey erzeugen serbe SQL in Imabas 1 12.04.2005 08:18


Powered by vBulletin® Version 3.7.1 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.