helpmac.it

xblack 14 HelpPoints assistant (14) Inserita il 25 mag 2012

organizzare immagini in base alla dimensione

ciao a tutti
ho una cartella con circa 4000 immagini, ho la necessità di ordinarle in base alla dimensione in particolare alla dimensione della largezza e poi all'altezza.esiste un modo per farlo?

grazie

Risposte 15

Esegui il login o registrati così potrai votare le risposte.
  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012 modificata il 25 mag 2012
    0VOTI

    Ciao,
    non so se può bastarti questo :
    - in Finder scegli la "vista ad elenco" (CMD +2)
    - tasto destro sull'intestazione delle colonne
    - aggiungi l'ultimo campo : "Dimensioni" (quello dopo "Risoluzione")
    - clicchi sulla colonna per ordinare

    Altrimenti, se vuoi una "lista" dei nomi dei file ordinata come dicevi prima per larghezza e poi per altezza, bisogna ricorrere ad un Applescript... da studiare ad hoc;
    in ogni caso però lo script ti ritorna appunto una lista, ma non riorganizza la posizione dei file all'interno del finder

  • xblack 14 HelpPoints assistant (14) Inserita il 25 mag 2012
    0VOTI

    ciao Gabriele, è la prima cosa che ho fatto ma non funziona,almeno per quello che serve a me.

    per quanto riguarda l'applescript non so proprio da dove partire quindi lo escludo.
    comunque ti ringrazio

  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012
    0VOTI

    lo script posso vedere di scrivertelo io, ma ti può bastare avere un elenco di file ?
    (non i file ordinati nel finder, per quello non ho soluzioni)

  • xblack 14 HelpPoints assistant (14) Inserita il 25 mag 2012
    0VOTI

    se non riesco ad ordinare i file all'interno della cartella lo script serve a poco.
    ti spiego nel dettaglio di cosa ho bisogno.
    devo usare un'azione in photoshop che ridimensiona tutte le immagini (circa 4000) ad una risoluzione di 400x400.usando la funzione batch mi chiede di usare un'azione (preimpostata) ed è qui il problema, solitamente uso due azioni differenti per ridimensionare le immagini, una che interviene sulla larghezza, e una sull'altezza, da qui nasce la necessità di creare una cartella con tutte le immagini (su cui intervengo sulla larghezza), e una su cui intervengo sull'altezza.
    non so se mi sono spiegato, spero di si.

  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012
    0VOTI

    Ma il ridimensionamento non lo fai mantenendo le proporzioni ?
    Quindi ridimensioni una sola delle due dimensioni e l'altra viene calcolata di conseguenza ?

    Comunque, potrebbe andare se li script copiasse le immagini in due differenti cartelle ?
    Quale è il criterio per decidere se devi ridimensionare l'altezza o la larghezza ?
    Il resize deve farlo per forza photoshop ? Perchè forse si riesce a far fare tutto allo script

  • xblack 14 HelpPoints assistant (14) Inserita il 25 mag 2012 modificata il 25 mag 2012
    0VOTI

    se lo script copiasse le immagini in due cartelle differenti sarebbe perfetto,
    ad esempio tutte le immagini che sono più larghe (ad es.400x300) e in un altra cartella le altre che sono più alte (ad es. 400x500).

    non sono esperto di photoshop, ma pur mantenendo le proporzioni non riesco a fare un azione che ridimensiona tutte le immagini alla risoluzione che voglio(in questo caso 400x400)

    faccio riferimento a photoshop, naturalmente qualsiasi altra applicazione va bene lo stesso.

    Gabriele ti ringrazio per l'interessamento, mi spiace che non riesco bene a spiegarmi

  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012
    0VOTI

    Ok, vediamo se ho capito bene ...
    tu vuoi che la dimensione più grande di ogni immagine sia al max 400, quindi se è maggiore la larghezza ridimensioni quella a 400 e l'altezza viene calcolata di conseguenza per mantenere le proporzioni.

    Se ho capito bene, qui sotto trovi lo script per farlo, il testo lo devi incollare dentro ad un nuovo documento di AppleScript, poi lo puoi salvare come applicazione ed eseguirlo normalmente.

    Lo script ti chiede 3 cose :
    - il numero di pixel per la dimensione massima (default : 400)
    - la cartella dove prendere i file (seleziona tutti i file contenuti !)
    - la cartella dove salvare le immagini ridimensionate (sovrascrive file con lo stesso nome)

    Lo script non tocca le immagini originali, andando a salvare in una cartella differente, ma per sicurezza DEVI farti una copia di quelle immagini prima di darle in pasto ;)

    Quando ha terminato ti visualizza il numero di immagini ridimensionate, ovviamente per 4000 immagini ci metterà un po, per cui per prima cosa provalo su poche immagini per vedere se è tutto ok.

    Se c'è qualcosa che non torna chiedi pure ;)

  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012
    0VOTI

    ---------------------------------------------------

    try

    set dim to display dialog "Indicare il numero di pixel per la dimensione massima : " default answer "400"
    set target_px to (text returned of dim) as number
    set in_folder to choose folder with prompt "Selezionare la cartella con le immagini da ridimensionare"
    set out_folder to choose folder with prompt "Selezionare la cartella di destinazione"

    tell application "Finder"
    set img_files to every file of in_folder
    end tell

    tell application "Image Events"
    launch
    repeat with i from 1 to length of img_files
    set img to file ((item i of img_files) as string)
    set pic to open img
    tell pic
    scale to size target_px
    set img_name to name
    save in ((out_folder as string) & img_name) as (file type)
    end tell
    end repeat
    end tell

    display dialog "Ho ridimensionato " & i & " immagini"

    on error error_message
    display dialog error_message
    end try
    ---------------------------------------------------

  • gabriele 986 HelpPoints master (986) Inserita il 25 mag 2012 modificata il 25 mag 2012
    0VOTI

    dimenticavo ....
    le immagini ridimensionate sono salvate nello stesso formato dell'immagine di partenza;
    se serve si può aggiungere anche il salvataggio in altro formato ;)

  • xblack 14 HelpPoints assistant (14) Inserita il 26 mag 2012
    0VOTI

    guarda per il ridimensionamento penso che l'unico modo sia photoshop.
    a me basterebbe che lo script mi salvasse le immagini in due cartelle differenti:

    quelle con larghezza maggiore dell'altezza ad es. 170x100 - 250x200 - 300x250 in una cartella,

    e le immagini con altezza maggiore della larghezza ad es. 100x170 - 200x250 - 250x300 in un altra cartella

    l'azione che andrò' a fare in photoshop (che ho già salvato), mi porterà tutte le immagini a una grandezza di 400x400 pixel, azione che faro' in due volte,
    la prima prendendo tutte le immagini con maggiore larghezza e la seconda con maggiore altezza

    se vuoi mandarmi a quel paese fallo pure!! :)

  • gabriele 986 HelpPoints master (986) Inserita il 26 mag 2012
    0VOTI

    Ciao,
    ok, allora questo script fa una copia dei file suddividendoli in due sotto cartelle ("altezza" e "larghezza") sulla base alla dimensione maggiore;
    le due sottocartelle vengono create nella stessa cartella delle immagini.

    Fammi sapere :)


    ---------------------------------------------------
    try
    set in_folder to choose folder with prompt "Selezionare la cartella con le immagini"
    set in_folder_unx to (quoted form of POSIX path of in_folder)

    tell application "Finder"
    if not (exists folder "larghezza" of in_folder) then
    make new folder at in_folder with properties {name:"larghezza"}
    end if

    if not (exists folder "altezza" of in_folder) then
    make new folder at in_folder with properties {name:"altezza"}
    end if

    set img_files to every file of in_folder
    end tell

    tell application "Image Events"
    launch
    repeat with i from 1 to length of img_files
    set img to file ((item i of img_files) as string)
    set pic to open img
    tell pic
    copy dimensions to {W, H}
    if W is greater than H then
    set out_folder to "larghezza"
    else
    set out_folder to "altezza"

    end if
    close

    set img_unx to (POSIX path of img)
    do shell script "cp " & quoted form of img_unx & " " & in_folder_unx & out_folder

    end tell
    end repeat
    end tell

    display dialog "Finito !"

    on error error_message
    display dialog error_message
    end try
    ---------------------------------------------------

  • xblack 14 HelpPoints assistant (14) Inserita il 26 mag 2012
    0VOTI

    allora, ho fatto partire lo script, mi ha creato due cartelle differenti come appunto indichi te, dopo un po' si è fermato è apparsa la scritta "impossibile ottenere"

    da ignorante in materia, sarebbe possibile indicare al programma di non fermarsi qualora incontra errori?

    ha suddiviso correttamente circa 1000 immagini nelle sottocartelle ma poi si è fermato

  • gabriele 986 HelpPoints master (986) Inserita il 26 mag 2012
    1VOTO

    giusto :)

    script modificato : in caso di errori tira dritto ma salva le immagini non copiate in un file di log sul desktop (e te lo apre alla fine )



    ---------------------------------------------------
    set log_name to "log_" & (do shell script "date +'%y%m%d%H%M' ") & ".txt"
    set logfile to open for access file (((path to desktop) as string) & log_name) with write permission
    set eof of logfile to 0
    set errori to false

    try
    set in_folder to choose folder with prompt "Selezionare la cartella con le immagini"
    set in_folder_unx to (quoted form of POSIX path of in_folder)

    tell application "Finder"
    if not (exists folder "larghezza" of in_folder) then
    make new folder at in_folder with properties {name:"larghezza"}
    end if

    if not (exists folder "altezza" of in_folder) then
    make new folder at in_folder with properties {name:"altezza"}
    end if

    set img_files to every file of in_folder
    end tell

    tell application "Image Events"
    launch
    repeat with i from 1 to length of img_files
    set img to file ((item i of img_files) as string)
    set img_unx to (POSIX path of img)

    set pic to open img

    tell pic
    try
    copy dimensions to {W, H}
    if W is greater than H then
    set out_folder to "larghezza"
    else
    set out_folder to "altezza"

    end if
    close

    do shell script "cp " & quoted form of img_unx & " " & in_folder_unx & out_folder

    on error error_message
    write "Errore: " & img_unx & return to logfile starting at eof
    set errori to true
    end try
    end tell
    end repeat
    end tell
    close access logfile
    display dialog "Finito !"
    if errori then
    tell application "TextEdit"
    activate
    open file (((path to desktop) as string) & log_name)
    end tell
    end if
    end try
    ---------------------------------------------------

  • xblack 14 HelpPoints assistant (14) Inserita il 26 mag 2012 modificata il 26 mag 2012
    0VOTI

    PERFETTOOOOOO!!!!!:)

    mancano all'appello solo due file, nel file di testo è indicato il nome, quindi nessun problema intervengo io manualmente
    sei stato gentile, disponibile e competente
    Gabriele non so come ringraziarti, avrei pagato un programmino di questo tipo, non puoi immaginare quanto mi è utile.
    Ho lanciato l'azione in photoshop tutto ok

    ancora Grazie
    sei un grande!!!!!!!!!!!!

  • gabriele 986 HelpPoints master (986) Inserita il 26 mag 2012
    0VOTI

    sono contento che hai risolto :)

    Ciao!

Rispondi

Inserisci solo testo, senza codice HTML. I link vengono automaticamente interpretati dal sistema se presenti http:// o www.. Per le immagini usa un servizio di storage esterno ed incolla il link.

Sei nuovo da queste parti?
Se hai già un account inserisci le credenziali
Registrati per fare domande su HelpMac.it