User Tools

Site Tools


photography:photography-scripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
photography:photography-scripts [2011/11/01 23:19] cedricphotography:photography-scripts [2012/06/15 07:22] (current) – removed cedric
Line 1: Line 1:
-====== Compare folder contents ====== 
-<code bash> 
-cedric@debian:~$ find ./photographs/ -type f -exec sha1sum  {} \; | sort  > dir1_sha1 
-cedric@debian:~$ cd /mnt/nas/ 
-cedric@debian:~$ find ./photographs/ -type f -exec sha1sum  {} \; | sort  > dir2_sha1 
-cedric@debian:~$ diff --brief dir1_md5 dir2_md5 
-</code> 
  
- 
- 
-====== Focal length repartition ====== 
- 
-<code python> 
-#!/usr/bin/env python 
-# -*- coding: utf-8 -*- 
- 
-import pylab 
-import glob 
-from collections import Counter 
- 
-from PIL import Image 
-from PIL.ExifTags import TAGS 
- 
- 
-DIRECTORY = "/home/cedric/vienna/*.JPG" 
- 
- 
-def get_exif(fn): 
-    ret = {} 
-    i = Image.open(fn) 
-    info = i._getexif() 
-    if info is not None: 
-        for tag, value in info.items(): 
-            decoded = TAGS.get(tag, tag) 
-            ret[decoded] = value 
-    return ret 
- 
- 
- 
-if __name__ == "__main__": 
-    cnt = Counter() 
-    pictures = glob.glob(DIRECTORY) 
-    focal = Counter() 
-    for picture in pictures: 
-        exif = get_exif(picture) 
-        if exif != {}: 
-            focal[exif['FocalLength'][0]] += 1 
- 
-    if focal: 
-        length = len(focal) 
-        ind = pylab.arange(length) 
-        width = 0.35 # bars width 
- 
-        focal_list = [elem for elem in focal.keys()] 
-        focal_count = [elem for elem in focal.values()] 
-        max_focal_count = max(focal_count)  # max focal_count 
- 
-        p = pylab.bar(ind, focal_count, width, color='r') 
- 
-        pylab.ylabel("Number of shots") 
-        pylab.xlabel("Focal length") 
-        pylab.title("Focal length repartition for " + str(sum(focal_count)) + " pictures") 
-        pylab.xticks(ind + (width / 2), focal_list) 
-        pylab.xlim(-width, len(ind)) 
- 
-        # changing the ordinate scale according to the max. 
-        if max_focal_count <= 100: 
-            pylab.ylim(0, max_focal_count + 5) 
-            pylab.yticks(pylab.arange(0, max_focal_count + 5, 5)) 
-        elif max_focal_count <= 200: 
-            pylab.ylim(0, max_focal_count + 10) 
-            pylab.yticks(pylab.arange(0, max_focal_count + 10, 10)) 
-        elif max_focal_count <= 600: 
-            pylab.ylim(0, max_focal_count + 25) 
-            pylab.yticks(pylab.arange(0, max_focal_count + 25, 25)) 
-        elif max_focal_count <= 800: 
-            pylab.ylim(0, max_focal_count + 50) 
-            pylab.yticks(pylab.arange(0, max_focal_count + 50, 50)) 
- 
- 
-        for rect in p: 
-            height = rect.get_height() 
-            pylab.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height), 
-                    ha='center', va='bottom') 
- 
- 
-        pylab.show() 
-    else: 
-        print "No result." 
-</code> 
-         
-         
-         
-====== Piwigo ====== 
- 
-<code python> 
-! /usr/local/bin/python 
--*- coding: utf-8 -*-  
- 
-"""piwigo.py 
- 
-Usefull for your Piwigo gallery (http://www.piwigo.org/). 
- 
-./piwigo 
- 
-    ./photos 
-        ./thumbnail/ 
-        ./pwg_high/ 
-            ./original_image01.jpg 
-            . 
-            . 
-            ./original_imageN.jpg 
-    ./piwigo.py 
- 
-Resize images from /pwg_high (original images) directory in two size : 
- 
- - 128*128 pixels in ./piwigo/photos/thumbnail ; 
- - 1024*768 pixels in ./piwigo/photos/ . 
- 
-""" 
- 
-__author__ = "Cedric Bonhomme" 
-__date__ = "$Date: 2009/03/22 $" 
-__copyright__ = "Copyright (c) 2009 Cedric Bonhomme" 
-__license__ = "GPL v3" 
- 
-import re import os import Image 
- 
-def search_files(motif, root_path): 
- 
-    """Return a list of tuple (path, files). 
- 
-    Search fo files containing 'motif' that 
-    aren't symbolic links. 
-    """ 
-    result = [] 
-    w = os.walk(root_path) 
-    for (path, dirs, files) in w: 
-        for f in files: 
-            if re.compile(motif).search(f): 
-                # if not a symbolic link 
-                if not os.path.islink(os.path.join(path, f)): 
-                    result.append((os.path.join(path, f), f)) 
-    return result 
- 
-images = search_files(".jpg", "./photos/pwg_high") 
- 
-for image in images: 
- 
-    im = Image.open(image[0]) 
- 
-    im_thumbnail = im.resize((128, 128), Image.ANTIALIAS) 
-    im_thumbnail.save("./photos/thumbnail/TN-" + image[1], quality = 100) 
- 
-    im_slide = im.resize((1024, 768), Image.NEAREST) 
-    im_slide.save("./photos/" + image[1], quality = 100) 
- 
-""" Filter options to resize the image : 
- 
-    Use nearest neighbour : 
-        Image.NEAREST 
-    Linear interpolation in a 2x2 environment : 
-        Image.BILINEAR 
-    Cubic spline interpolation in a 4x4 environment : 
-        Image.BICUBIC 
-    Best down-sizing filter : 
-        Image.ANTIALIAS 
- 
-""" 
-</code> 
- 
-On peut facilement ajouter le transfert FTP du résultat dans le dossier distant qui va bien. 
- 
- 
-====== Watermark avec ImageMagick ====== 
- 
-<code bash> 
-[cedric@localhost ~]$ convert 16-04-2008_0167.jpg -font Arial -pointsize 40 -draw "gravity south > fill black text 0,12 'Cédric Bonhomme' > fill white text 1,11 'Cédric Bonhomme' " wmark_text_drawn.jpg 
-</code> 
- 
- 
-====== Effet Polaroid ====== 
- 
-<code bash> 
-convert picture.jpg -thumbnail 240 -bordercolor white -background black +polaroid picture-pola.png 
-</code> 
photography/photography-scripts.1320185973.txt.gz · Last modified: 2011/11/01 23:19 by cedric