Quale programma può ridimensionare e ritagliare automaticamente una cartella di immagini a una determinata risoluzione?


11

Vorrei prendere una cartella di immagini di varie dimensioni e farle ritagliare in una griglia quadrata di 600x600, ritagliata dal centro dell'immagine. Esiste un programma in grado di ridimensionare e ritagliare automaticamente su queste dimensioni e quindi di essere prodotto come file compresso .png? Per le immagini inferiori a 600x600, vorrei che il programma aumentasse la dimensione dell'immagine a quella dimensione.


1
Ho controllato Irfanview e il suo ritaglio batch è statico con solo l'opzione per iniziare dagli angoli e un offset fisso. Non può eseguire il centraggio e il ridimensionamento condizionale richiesto dal PO. Non è adatto per dimensioni dell'immagine variabili.
Michael Nielsen,

1
Speravo molto che XnConvert potesse fare quello che stai cercando, ma come IrfanView non farà un ritaglio centrato su dimensioni di immagini arbitrarie.
Mark Whitaker,

Risposte:


12

Il comando Batch di Photoshop può farlo. Dovresti essenzialmente "registrare" te stesso eseguendo il ritaglio ecc. Una volta, quindi eseguire la registrazione su tutti i file desiderati. Se vuoi ridimensionare automaticamente le immagini più piccole dovresti fare un po 'di scripting.

Irfanview ha anche un processore batch di immagini completo ma potrebbe richiedere un po 'di sperimentazione per ottenere i risultati desiderati.


10

ImageMagick ti consente di eseguire comandi in una finestra di comando di Windows. Devi essere a tuo agio con la creazione di file batch Dos.

Per un esempio, vedi l'ultimo post di questa discussione: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21112

Esempio pertinente da questo post del forum:

@echo off

cd C:\Users\user\Desktop\New\New folder

convert *.jpg -fuzz 10%% -trim -write %%02d_trim.png -scale "x1!" txt:

convert *_trim.png -crop 209x329+0+0 -fuzz 10%% -trim +repage %%02d_left.png

convert *_trim.png -crop 173x336+227+0 -fuzz 10%% -trim +repage %%02d_right.png

@pause

È meglio se le parti rilevanti di risorse esterne sono citate o riassunte qui. I collegamenti esterni possono potenzialmente andare offline in qualsiasi momento, invalidando una risposta che contiene solo un collegamento. Il link che hai fornito ha una risposta, tuttavia ti chiedo di citare il comando pertinente qui nella tua risposta per renderlo più praticabile.
jrista

7

Innanzitutto ho pensato che volessi ridimensionare in batch, cosa che molti programmi possono fare. Ma poi ho capito che vuoi fare una combinazione di ridimensionamento e ritaglio e vuoi che il computer calcoli come tagliare meglio i pixel 600x600 dall'immagine in modo dinamico.

È perché non è un tipo di "unica vera soluzione", come di solito è un giudizio umano, come ritagliare l'immagine, quindi può essere fatto solo avviando determinate condizioni. Ad esempio, osserva le proporzioni e ridimensiona sempre la dimensione più breve su X e ritaglia i pixel Y (centrati / destra / sinistra). Se ho letto bene la tua affermazione, vuoi ritagliare 600 pixel da X e Y centrati in entrambe le dimensioni, se entrambe le dimensioni sono 600 o più. E ridimensiona a 600 solo se una dimensione è inferiore a 600?

Ho desiderato a lungo aggiungere una funzionalità come questa al mio programma "Image View Plus More", e immagino che le impostazioni della funzione dovrebbero essere simili a: - dimensione del ritaglio: lxh - larghezza allineamento: centro / sinistra / destra - altezza allineamento: center / left / right - ridimensiona: no / se minore di / se maggiore di / entrambi

Hai bisogno di altre impostazioni?

Aggiornamento: ora ho finito di programmare questa funzione in Image View Plus Altro 2.4:

http://www.sequoiagrove.dk/tools.php

Come fare: installare, trascinare e rilasciare le immagini che si desidera ritagliare in essa, "salva tutto nella nuova cartella" e assegnargli un nome di base o% per utilizzare il nome file originale, quindi nella finestra di dialogo successiva selezionare "ritaglio automatico "e riempire le caselle per larghezza e altezza, quindi selezionare" centro "di allineamento per altezza e larghezza e selezionare" ridimensiona se più piccolo ".

Ho fatto un tutorial su come farlo:

La soluzione al problema OP: http://www.youtube.com/watch?v=wBc1s6zuDJM

Un altro esempio: http://www.youtube.com/watch?v=3nFrnaefsqA


Vedi la mia risposta, ho scritto il codice in Python.
Onlyjus,

1
Sì, ora non è così statico, ma sei sicuro che l'OP sia interessato a programmare la sua modifica delle immagini?
Michael Nielsen,

Non ne ho idea. L'OP ha appena richiesto un programma, quindi ne ho scritto uno.
Onlyjus,

Come vedi ora ho aggiunto la funzione e ho idee per miglioramenti, come "mostra per esempio" (sulla foto attualmente visualizzata), quindi non puoi limitarti a centrato o allineato ai bordi. Ovviamente dovrei capire come generalizzare quell'esempio a differenti proporzioni e dimensioni.
Michael Nielsen,

Bello! In che cosa è scritto il tuo programma ed è disponibile la fonte?
Onlyjus,

5

Se ti piace programmare, puoi usare Python (linguaggio per computer) e un'eccellente libreria sa che ha PIL per ritagliare, ridimensionare, tracciare istogrammi, ottenere singoli valori di pixel, ecc ... a livello programmatico. Quindi puoi facilmente scrivere un semplice script per trovare tutte le immagini in una cartella ed eseguire l'operazione.

Questo codice dovrebbe fare esattamente quello che vuoi e dovrebbe elaborare un paio di foto al secondo, a seconda delle dimensioni dell'immagine:

#Python 2.7, PIL 1.1.7

import Image
import glob
import os

#Function to resize image, preserving aspect ratio
def resizeAspect(im, size):
    w,h = im.size
    aspect=min(size[0]/float(w), size[1]/float(h))
    return im.resize((int(w*aspect),int(h*aspect)),Image.ANTIALIAS)

imgList=glob.glob('C:/icons/*.png')         #Find all png images in a directory

for img in imgList:                              #Loop through all found images
    im = Image.open(img)                         #open the image
    print "resizing:",os.path.basename(img)
    w,h = im.size                                #Get image width and height
    if min(w,h)<600:                             #Check if either dimension is smaller then 600
        im=resizeAspect(im,(600,600))            #Re-size Image
        w,h = im.size                            #update image size
    center = [int(w/2.0),int(h/2.0)]             #Calculate Center
    box = (center[0]-300, center[1]-300, center[0]+300, center[1]+300) #Defines a box where you want it to be cropped
    croppedIm = im.crop(box)                     #Crop the image
    #croppedIm.show()                            #Show the cropped image
    fileName, fileExtension=os.path.splitext(img)
    croppedIm.save(fileName+'_crop.png', "PNG")  #Save the cropped image

Quando inizi a lavorare a livello programmatico, allora il cielo è il limite! È anche possibile rilevare volti e ritagliare intorno al viso, permettendoti di ritagliare in modo intelligente migliaia di foto ...

[aggiornato il 09/12/2012]


4

ThumbsPlus può fare ciò che richiedi. Dal menu Immagine, selezionare Elaborazione batch o premere F12 e rispondere alle istruzioni interattive. È possibile aggiungere più operazioni a un set e salvarlo per un utilizzo immediato o futuro. In futuro, basta accedere al nome impostato precedentemente configurato per eseguirlo automaticamente su una directory o selezione di foto, o anche su un intero albero di directory.

Durante la creazione del set, viene fornita un'immagine di esempio per illustrare l'opzione aggiunta alle operazioni.

Fare attenzione a costruire il set, poiché l'ordine delle operazioni è importante.


4

Sizzlepig.com è uno strumento online che lo farà facilmente, è possibile impostare la dimensione del "progetto" su 600x600 e quindi ritagliare al centro tutte le immagini.

Per la parte "Per immagini di dimensioni inferiori a 600x600, vorrei che il programma aumentasse le dimensioni dell'immagine a quella dimensione". Consiglio vivamente di NON tentare di ingrandire le immagini, ma di cercare una fonte di qualità superiore con cui lavorare. So che non è sempre possibile, ma si tradurrà in un output di qualità molto più elevata rispetto al tentativo di effettuare l'upscaling.

(Lavoro per sizzlepig, ma è ancora un ottimo strumento)


Si prega di consultare le domande frequenti . Va bene menzionare qui le tue cose, ma devi dirlo.
Leggi il mio profilo

1
Freddo. Benvenuti nel sito, restate in giro, rispondete e fate altre domande. :)
Ti preghiamo di leggere il mio profilo il


2

Irfanview può farlo, ma richiede un po 'di configurazione.

Utilizzare l'opzione di conversione batch. Scegli "PNG" come formato di output. Fai clic sul pulsante "opzioni" accanto al formato di output e scegli la compressione desiderata e fai clic su OK

Seleziona la casella "Usa opzione avanzata", quindi fai clic sul pulsante "Avanzate"

Vedrai questa finestra

Impostazioni avanzate di Irfanview

Imposta il ridimensionamento con il lato più corto 600. Assicurati di selezionare "preserva proporzioni" e "usa la funzione ricampiona". Deseleziona "Non ingrandire le immagini più piccole"

Se stai riducendo drasticamente la dimensione delle tue immagini originali, potresti voler spuntare la casella "affina" e aggiungere un valore. Il mio requisito era per immagini di dimensioni 150x150 e ho scoperto che avevano bisogno di un valore di nitidezza di circa 20 per abbinare la qualità dell'immagine che stavo ottenendo da Photoshop. Per le tue immagini 600x600 potresti non aver bisogno di un valore di nitidezza, quindi puoi deselezionare questa opzione.

Invece di usare "Ritaglia" usa l'impostazione "Dimensione tela" - assicurati di selezionare l'opzione

Fai clic sul pulsante "Impostazioni" accanto all'opzione dimensioni tela. Vedrai questa finestra

Opzioni di dimensione della tela di Irfanview

Seleziona il metodo 2 e larghezza e altezza come 600. Scegli l'opzione "centro" per l'ancoraggio

Il colore della tela non ha importanza in quanto non aggiunge effettivamente un bordo dell'immagine

Ora, nella schermata avanzata, spunta di nuovo la casella accanto a "Ordine di elaborazione personalizzato" e assicurati che il "ridimensionamento" sia il primo nell'elenco, ovvero in modo che il ridimensionamento venga eseguito prima del ritaglio.

Clicca OK

Assicurarsi di aver selezionato i file che si desidera convertire, impostare la directory di output e quindi fare clic su "Avvia batch"



0

Esiste un'utilità con più opzioni disponibili su http://pixresizer.software.informer.com/

Questo è un buon software. Buoni mezzi, facili da usare e più veloci nel lavoro. Mentre faccio la fotografia, la sto usando per elaborare le immagini in batch. Molte volte ho bisogno di ridurre le dimensioni delle foto per condividerle su Internet. Ho anche provato altri software, ma ho trovato questo buono. (Non sono associato a questa azienda.)


Il software è buono? Perché? Sei associato all'azienda?
Paul Cezanne,

Ciao Paul, sì, questo è un buon software. Buoni mezzi, facili da usare e più veloci nel lavoro. Mentre faccio la fotografia, la sto usando per elaborare le immagini in batch. Ho anche provato qualche altro software, ma l'ho trovato buono. No !, Non sono associato a questa azienda.
Mahesh Mankar,

Mahesh, puoi prendere i tuoi commenti e modificare la tua risposta? Non tutti leggono i commenti. E raccontaci sempre di più, ci piacerebbe saperlo!
Paul Cezanne,

0

Non so perché nessuno ne abbia parlato, ma il mio preferito è multipleimageresizer.net . Ti permette di fare molto come ritagliare, cambiare formato, dimensioni, aggiungere testo, filigrana ... ecc. su più immagini contemporaneamente.

Questo è un vero risparmio di tempo .. Lo consiglio!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.