Per motivi professionali mi sono trovato nella condizione di dover operarare con GIMP su mappe, in formato raster, di grandi dimensioni.
Spesso le dimensioni dei file superavano i 100 Mb e richiedevano tempi di refresh molto lunghi, con conseguente perdita di tempo.
Per accelerare i tempi di lavorazione ho ritenuto utile suddividere le mappe originali in tante piccole porzioni, lavorare su
ognuna di esse per poi ricomporle tutte insieme e ricostruire l'intera mappa. Una delle mie esigenze era anche quella di poter
variare le dimensioni dei singoli frammenti in modo da poter inquadrare, di volta in volta, l'intera zona interessata. La
parte più difficoltosa in tutte queste operazioni non era tanto la suddivisione delle mappe quanto la loro veloce ricomposizione.
Ho risolto tutti questi problemi con due funzioni: image-slice ed image-join, entrambe contenute nello script slice-and-join.scm.
Lo script slice-and-join.scm
frammenta una immagine in M righe x N colonne e salva su un file, con lo stesso nome dell'immagine da suddividere e con estensione *.rcm, tutti i dati necessari per la ricostruzione successiva
dell'intera immagine.
Legge il file *.rcm e ricompone i singoli frammenti per ottenere l'immagine originale
Ogni singola porzione dell'immagine viene rinominata aggiungendo al nome del file originale il numero della riga e della colonna a cui appartiene.
Per poter ricostruire l'immagine originaria è necessario che il file con i dati *.rcm ed i singoli frammenti si trovino tutti nella stessa cartella.
Novità nella versione 2.0.0
La nuova versione risolve i seguenti problemi:
previene la duplicazione del nome dei files;
utilizza il separatore delle directory in base al sistema operativo (windows/Linux);
impedisce che il numero massimo di righe e colonne sia maggiore dell'altezza o della larghezza dell'immagine;
Ora è possibile salvare anche il canale alfa, se questo è presente nell'immagine sorgente.
Quando si ricompone l'immagine è possibile fondere tutti i frammenti su un solo layer, oppure mantenerli separati.
Installazione
Dopo aver scaricato e decompresso il file image-slice-and-join.scm
occorre copiarlo nella cartella \.gimp-2.6\scripts\ degli script personali di GIMP.
Una volta installato lo script vengono inserite due nuove voci di menu:
Slice all'interno del menu "/ATG/Tools/Image slice"
Join all'interno del menu "Filtri/Script-fu//ATG/Tools/Image Join"
Suddivisione dell'immagine
Una volta attivato lo script image-slice compare la finestra di dialogo sottostante in cui vanno inseriti, nelle prime due caselle,
il numero di righe ed il numero di colonne in cui si vuole suddividere l'immagine.
Nella terza casella va selezionato il formato in cui devono essere salvati i singoli frammenti. Per default le immagini vengono salvate
nel formato xcf, opzionalmente si può scegliere di salvare nei seguenti formati: png, jpg, bmp, tif, tga.
Nella quarta casella occorre selezionare la cartella in cui salvate le divese immagini ed il file *.rcm contenete tutti i dati necessari
per la ricomposizione dell'immagine.
Una volta impostati tutti dati richiesti l'immagine viene automaticamente suddivisa, convertita ed i frammenti salvati nella cartella
indicata.
Esempio di immagine frammentata col plugin Image slice
Una volta attivato lo script image-join compare la finestra di dialogo sottostante che consente di selezionare il file *.rcm
contenete tutte le informazioni necessarie per la ricomposizione dell'immagine. Il file *.rcm deve trovarsi sempre nella stessa cartella
in cui si trovano i singoli frammenti.
Il file *.rcm contiene tutte le informazioni per la ricompsizione dell'immagine ed è cosi strutturato:
N. Riga
Contenuto
Descrizione
1:
signature
"ATGrcm"
2:
integer
Larghezza immagine
3:
integer
Altezza immagine
4:
integer
Numero di colonne
5:
integer
Numero di righe
6:
string
nomefile
7:
string
nomefile
....
.....
nomefile
Immagine precedente ricomposta col plugin Image join