Ho un'immagine con una risoluzione di 18984x28591px ma non riesco ad aprirla con Paint o con Pixlr Editor per ridurne le dimensioni.
Come posso convertire o aprire questa immagine di grandi dimensioni sul mio laptop?
Ho un'immagine con una risoluzione di 18984x28591px ma non riesco ad aprirla con Paint o con Pixlr Editor per ridurne le dimensioni.
Come posso convertire o aprire questa immagine di grandi dimensioni sul mio laptop?
Risposte:
Ho usato ImageMagick su Ubuntu per ridimensionare quelle immagini grandi.
convert -resize 10% source.jpg dest.jpg
Ci è voluto un po ', ma ha funzionato con 1 GByte di RAM, lo strumento ha creato un file simile a swap da 4,7 Gbyte.
Maggiori informazioni sono su AskUbuntu .
convert -resize 1898x2859 ...
Teoricamente, la maggior parte dei formati di immagine potrebbe essere progressivamente ridotta, senza caricare l'intera immagine in memoria, tuttavia non conosco strumenti che implementino realmente tale funzionalità, tranne JPEG: è speciale in quanto non è possibile solo ridimensionare senza caricare la risoluzione completa, ma anche ridimensionare senza decodificare la piena risoluzione, grazie all'uso creativo di DCT (JPEG è codificato nel dominio della frequenza, il che significa che non deve essere decodificato con la stessa identica risoluzione dell'immagine originale).
Lo strumento di decodifica JPEG predefinito (riga di comando, pacchetto libjpeg-progs in Linux, cerca djpeg.exe per Windows) ridimensionerà l'enorme JPEG prima che un'applicazione "normale" possa persino finire di caricarlo:
djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm
Ho anche visto l'opzione downscale-while-loading in alcune applicazioni GUI, ma al momento non riesco a ricordarla.
Confronto tra l'utilizzo della memoria e il tempo di elaborazione di ImageMagick vs djpeg ridimensionando un'immagine grande ( eseguendo il piping su cjpeg , quindi l'immagine risultante è anche jpg, per un equo confronto con convert )
$ display -verbose input.jpg
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K
1,2 GB contro 1,4 MB e oltre 10 volte più lento - e questo era su un'immagine 13k x 11k relativamente piccola che poteva adattarsi interamente alla RAM, quindi non si verificava alcuno scambio.
D'altra parte, l'uso di djpeg per il downscaling ha anche i suoi limiti: la scelta del fattore di ridimensionamento è limitata e il metodo di ricampionamento non può essere modificato.
Puoi anche provare a utilizzare Picture Resizer su Windows (Adoro questo strumento)
Basta trascinare e rilasciare l'immagine su questo semplice EXE È particolarmente utile se hai molte immagini da convertire, come puoi fare molte alla volta.
Tutta la configurazione viene fatta attraverso la denominazione di EXE che è brillante IMO
Non l'ho mai provato con file di grandi dimensioni però.