Zulu
 

  Opono
  Webtools
  > Alpuma
    wxHttpUpload
    HttpUpload
    wxMetaCreator
    Installation
  Download
  Zulu (externer Link)

  Druckversion


Alpuma

2005-09-10, Hans Märki

Das Problem: Ich habe viele Fotos geschossen und möchte sie im Internet zur Verfügung stellen, habe aber nur wenig Zeit dafür.

Mit Alpuma legt man alle Bilder in einen Ordner, aktiviert Alpuma und es resultiert ein HTML-File, ein Ordner mit Thumbs und ein zweiter Ordner mit komprimierten Bildern.

Das HTML-File sowie die Fotos können anschliessend noch bearbeitet werden.

Beispiele von Alpuma-generierten Seiten sind:

Typisch für diese Seiten ist die schnelle Ladezeit, die einheitliche Breite der Thumbs, sowie das Öffnen des Bildes beim Doppelklick.

Was ist Alpuma

Alpuma besteht lediglich aus einem 10 kByte grossen Python-Skript. Alpuma ist ein Beispiel für die Leistungsfähigkeit von Python und Open Source. Python is fun!

Das Konfigurationsfile

Beschreibung: Alpuma nimmt die Bilder in 'images_orig' und erstellt 200 Pixel breite Bilder im Ordner 'images'. Zudem wird ein HTML-File 'index.zulu_content.html' aufgrund der Templates im Konfigurationsfile erstellt.

#
# ALPUMA Configuration File
#
alpuma_config_version = '1.0.0'
input_path = 'images_orig'

conversions = (
  {
    'output_path'      : 'thumbs',
    'size_max_height'  : 300,
    'size_max_width'   : 200,
  },
  {
    'output_path'      : 'images',
    'size_max_height'  : 800,
    'size_max_width'   : 1000,
    'quality'          : 80,
    'annotation'       : {
      'text'           :'© Aldo Mustardo',
      'position'       : 'bottomright',   # Default 'bottomright': The position of the annotation: 'topleft' or 'bottomright'
      'spaceing_h'     : 10,              # Default 10: The horizontal space in pixels between the annotation and the border
      'spaceing_v'     : 3,               # Default 3: The vertical space in pixels between the annotation and the border
      'font'           : 'arial.ttf',     # Default 'arial.ttf'. See C:\WINDOWS\Fonts.
      'size'           : 12,              # Default 12: The font size.
    }
  }
)

html_filename   = 'index.zulu_content.html'

html_img_files     = (
                       'thumbs/{fileroot}_alpuma_override{fileext}',
                       'thumbs/{file}'
                     )

html_template_file = """
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body>
<!--ZuluMarkerStart-->


<h1>Titel</h1>

<table border="0" cellpadding="0" cellspacing="10" width="95%">
  <!--AlpumaInsert-->
</table>


<!--Zulu:MarkerEnd-->
</body>
</html>
"""

html_template_image = """
    <tr>
      <td width="50%">
        BlaBla
      </td>
      <td><a href="images/{file}"><img
               src="thumbs/{file}"
               alt="Grossformat" border="0"
               width="xxx" height="xxx"></a></td>
    </tr>
"""

Die Anleitung - oder zumindest ein Versuch

  2005-09-10, Hans Maerki, License LGPL
  
  Doubleclicking this file will loop over all
  image files in the current folder and create
  image-files and index.zulu_content.html.
  
  Installation:
    Run the following two installers to install python, the
    imaging library and the pdf generator.
    http://www.python.org/ftp/python/2.2.2/Python-2.2.2.exe
    It is a good idea to accept the installer's default settings.
  
    Now move this script into the folder with the images and
    double click it.
    If there is an error - you have about half a millisecond to
    see it. If this is to quick, open a dos-window, cd to the
    directory with your image-files and type "alpuma.py". Now
    you will see the error message.
  
   Pseudocode:
     for each *.jpg|*.gif|*.png
       convert image
       Get size of image
       if 'index.zulu_content.html' does not exist: create it from template.
       replace in 'index.zulu_content.html'
         href="bilder/06.jpg"
            <img src="bilder/06k.jpg" alt="Grossformat" border="0" width="200" height="150">
         if not found
            Add template at begin of page
  
  Kurzanleitung:
    Ordnerstruktur bereitstellen:
      base/alpuma_v2.0.0.py       (von Hans)
      base/alpuma_config.txt      (von Hans)
      base/orig/IMAGE123.JPG      (Hier die Bilder hineinkopieren
    'base/alpuma_v2.0.0.py' doppelklicken. Es entstehen folgende Files:
      'base/images/IMAGE123.JPG'
      'base/thumbs/IMAGE123.JPG'
      'base/index.zulu_content.html'
  
  Features:
    Imageverarbeitung:
      Ordner werden kreiert, falls noetig.
      Die Datei 'index.zulu_content.html' wird kreiert, falls noetig.
      Images werden nur dann neu geschrieben, falls sie inhaltlich geaendert haben.
      Die Breite des Images wird angepasst. Falls zu hoch, wird anhand der
      maximalen Hoehe skaliert.
  
    HTML aktualisieren:
      Falls 'html_filename' fehlt in 'alpuma_config.txt', wird kein
      HTML-File bearbeitet.
      width/height wird eingesetzt, falls nicht vorhanden.
      Entry für image wird eingesetzt, falls nicht vorhanden.
      Falls ein File 'thumbs/IMAGE123_alpuma_override.JPG' existiert, wird
      auf dieses File referenziert statt auf 'thumbs/IMAGE123.JPG'.
      Falls ein File 'images/IMAGE123_alpuma_override.JPG' existiert und statt
      'images/IMAGE123.JPG' verwendet werden soll, so muss der neue Filename
      manuell im html-File nachgetragen werden.

    Annotations:
      In 'alpuma_config.txt' kann eine Annotation definiert werden. Dies
      ist zum Beispiel ein Copyright-Vermerk "© Aldo Mustardo".
      Diese Annotation wird auf alle Bilder plaziert, auf welcher der
      Text Platz hat.

  History:
    2003-04-03, Hans Maerki. Python rules!
    2003-04-28, v2.0.0, Hans Maerki. Many new features.
    2003-04-28, v2.0.1, Hans Maerki. Minor bugfixes.
    2003-05-24, v2.0.2, Hans Maerki. Figaros Feature Request: Never enlarge images.
    2003-09-28, v2.0.3, Hans Maerki. 'Thumbs.db' wird ignoriert.
    2003-11-01, v2.0.4, Hans Maerki. Quality of the compression choosable now.
    2003-10-14, v2.0.5, Hans Maerki. Tested with Python 2.3
    2005-05-22, v2.0.6, Hans Maerki. Minor bugfixes.
    2005-09-10, v2.0.7, Hans Maerki. Refactoring - better structured. Added comments.
                                     Added Annotations.