PDA

Visualizza la versione completa : Ridimensionatore automatico


Violet sky
10-01-2004, 12:29
Ho delle immagini fatte con la mia fotocamera in risoluzioni diverse... ho bisogno di cambiare a tutte la risoluzione a una più piccola, nonchè di ricomprimerle...
C'è un programma che lo faccia automaticamente? Aprirle una a una nel gimp è un lavoro da certosini...

gianiaz
10-01-2004, 13:31
Siccome ho la febbre in questi giorni e sto delirando ho dedicato l'ultima mezz'ora a questo script in python.

Requisiti: python 2.3, python image library



#! /usr/bin/env python
# -*- coding: UTF-8 -*-
import Image, string
files=open("listato","r")
a=input("percentuale di ridimensionamento: ")
while 1:
file=files.readline()
if not file:
break
if file!="":
file=string.rstrip(file)
i=Image.open(file)
x=(i.size[0]*a)/100
y=(i.size[1]*a)/100
resized=i.resize((x,y))
print resized.size
resized.save(file)


Tutto quello che devi fare è :
- copiare in una cartella le immagini
- copiare nella stessa cartella il suddetto script dandogli nome che vuoi con permessi 755
- eseguire questo comando : ls *.jpg > listato
- far partire lo script

ciao ! :ciauz:

p.s.
questo script riduce le tue immagini di una certa percentuale... se sono diverse e le vuoi tutte delle stesse dimensioni studierò un'implementazione :adhone:

gianiaz
10-01-2004, 13:32
p.s. fai una copia delle foto, non vorrei essere responsabile della perdita dei tuoi ricordi ;)

Violet sky
10-01-2004, 14:01
Ringrazio moltissimo!
Va anche col python 2.2.2? Non ho troppa voglia di reinstallarlo, ma se è necessario...

[violetsky@localhost violetsky]$ cd photos/rid/
[violetsky@localhost rid]$ ls
dscn0571.jpg* dscn0724.jpg* dscn0913.jpg* dscn0949.jpg* img*
dscn0572.jpg* dscn0766.jpg* dscn0915.jpg* dscn0950.jpg* listato
dscn0573.jpg* dscn0777.jpg* dscn0916.jpg* dscn0951.jpg*
dscn0574.jpg* dscn0782.jpg* dscn0920.jpg* dscn0958.jpg*
dscn0722.jpg* dscn0796.jpg* dscn0945.jpg* dscn0964.jpg*
[violetsky@localhost rid]$ ./img
percentuale di ridimensionamento: 40
Traceback (most recent call last):
File "./img", line 12, in ?
i=Image.open(file)
File "/usr/lib/python2.2/site-packages/PIL/Image.py", line 971, in open
fp = __builtin__.open(fp, "rb")
IOError: [Errno 2] No such file or directory: 'dscn0571.jpg*'
[violetsky@localhost rid]$

Ouch... dipende dalla versione di python o c'è qualcos'altro che non va?

gianiaz
10-01-2004, 15:18
:fagiano:

:master:

Ma perchè hanno l'asterisco dopo jpg?

Violet sky
10-01-2004, 16:44
Perchè ho fatto uno script che automaticamente mi monta la fotocamera, copia le immagini e poi me la smonta... ma va solo da root e gli da tutti i permessi :fagiano:
Mi viene in mente... non è che ho sbagliato i permessi sullo script? :fagiano:

gianiaz
10-01-2004, 16:47
no l'errore è dovuto al fatto che cerca di aprire un file che non è un immagine...
la soluzione potrebbe essere guardare cosa c'è dentro il file 'listato'

hai fatto

ls *.jpg > listato

?
O hai fatto solo ls ? perchè in tal caso prenderebbe anche il nome dello script e se stesso.

ps.
effetivamente non è un gran che questo script, perchè non fa nessun controllo, ma l'ho scritto in fretta :)

Violet sky
11-01-2004, 12:01
[violetsky@localhost rid]$ cat listato
dscn0571.jpg*
dscn0572.jpg*
dscn0573.jpg*
dscn0574.jpg*
dscn0722.jpg*
dscn0724.jpg*
dscn0766.jpg*
dscn0777.jpg*
dscn0782.jpg*
dscn0796.jpg*
dscn0913.jpg*
dscn0915.jpg*
dscn0916.jpg*
dscn0920.jpg*
dscn0945.jpg*
dscn0949.jpg*
dscn0950.jpg*
dscn0951.jpg*
dscn0958.jpg*
dscn0964.jpg*
[violetsky@localhost rid]$

Edit: gli asterischi!!! :dhò:
Li ho levati e ora funziona :fagiano:

Ikitt
11-01-2004, 12:21
Originariamente inviato da Violet sky
Ho delle immagini fatte con la mia fotocamera in risoluzioni diverse... ho bisogno di cambiare a tutte la risoluzione a una più piccola, nonchè di ricomprimerle...
C'è un programma che lo faccia automaticamente?

mogrify, facente parte di ImageMagicK

gianiaz
11-01-2004, 13:07
ero sicuro che esistesse qualcosa di già fatto...
però sono contento che sia servito lo script, e per me è stato un esercizietto in + :)

Loading