[Risolto] sovrapporre immagini con imagemagick

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

[Risolto] sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

Ciao a tutti,
per un lavoro che dovrei fare, ho la necessità di effettuare piu volte un'operazione che potrei fare tranquillamente con gimp ma che mi porterebbe via troppo tempo.
Si tratta di unire due file, una cornice (che andrebbe applicata a piu immagini).

La cornice è questa al centro cella cornice andrebbero inserite diverse immagini come per esempio questa

Se riesco a ricavare il comando giusto per poter effettuare questa operazione con imagemagick, potrei fare un piccolo script e risparmiare un sacco di tempo.
Qualcuno puo darmi una mano?

Ringrazio anticipatamente per l'attenzione.
Ultima modifica di rodolforizzo76 il mercoledì 18 febbraio 2015, 19:05, modificato 2 volte in totale.
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
1001001
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1506
Iscrizione: mercoledì 22 dicembre 2010, 18:09
Desktop: Unity
Distribuzione: Ubuntu 14.04.1 LTS 64bit
Località: Verona

Re: sovrapporre immagini con imagemagick

Messaggio da 1001001 »

Ciao! Dovresti cavartela facilmente con composite, soprattutto se le immagini vanno messe tutte nello stesso posto rispetto alla cornice: http://www.imagemagick.org/script/composite.php
"I find your lack of faith disturbing."
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

credo che il comando indicato nel link che mi hai gentilmente indicato non sia corretto, forse un errore di trascrizione fatto sta che:

Codice: Seleziona tutto

composite -gravity center smile.gif rose: rose-over.png
non va, ovviamente ho cambiato i nomi dei file adattandoli ai mie. Credo che dipenda da "rose:"
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2926
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: sovrapporre immagini con imagemagick

Messaggio da rai »

Ciao, in effetti i due punti non c'entrano
Se le immagini da incorniciare sono tutte del tipo e delle dimensioni che hai postato e se sono tutte nella stessa CARTELLA dovrebbe bastare uno script di questo tipo:

Codice: Seleziona tutto

#!/bin/bash

cd /PERCORSO/DI/CARTELLA
for f in $(ls *.jpg )
do
composite -gravity center $f /percorso/della/cornice ${f/.jpg}-Framed.png
done
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

si, così funziona, diciamo che la misura delle immagini dovrebbe variare in base al tipo di cornice, e le cornici sono 6 o 7 tipi o forse di più, sarebbe utile forse creare tutte le varianti ogni volta che si processa un'immagine. Vedo cosa riesco a fare.
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Per curiosità ho fatto uno script per incorniciare formati diversi con le relative cornici.
Visto che le cornici da utilizzare sono poche, userei una struttura apposita in modo da non complicare lo script.
I presupposti sono:
1) che i nomi dei file delle cornici non contengano spazi e abbiano nome progressivo ('xxx-1', 'xxx-2' ... xxx-N ... o anche 'xxx-a', 'xxx-b', 'xxx-c' ...'xxx-z')

2) le directory contenenti le immagini da incorniciare abbiano un nome del tipo imgN dove "N" è un intero che rispetti la progressione dei nomi delle cornici.

(i nomi delle immagini da incorniciare non devono rispettare regole particolari e possono contenere spazi (while + read), le ho numerate solo perché è più veloce a farsi).

Per esempio la struttura iniziale che ho creato è questa:

Codice: Seleziona tutto

8-) tree
.
├── cornici
│   ├── cornice-1.png
│   ├── cornice-2.png
│   └── cornice-3.png
├── img1
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
├── img2
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
├── img3
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
└── script.sh
ho fatto copie delle immagini originali in ./img1 in ./img2 e ./img3
con mogrify ho ridotto le immagini proporzionalmente (in percentuale):
cornice-2.png (rid %) come le immagini in ./img2
cornice-3.png (rid %) come le immagini in ./img3

lo script è semplicissimo (ci vuole di più a descriverlo che a scriverlo): :D

Codice: Seleziona tutto

#!/bin/bash

dir_cornici='cornici'
dir_out='incorniciate'

i=1
for cornice in $(ls "$dir_cornici/"*.png);do
	[ -d "$dir_out/img$i" ] || mkdir -p "$dir_out/img$i"
	while read f
	do
		composite -gravity center "$f" "$cornice" "$dir_out/${f/.jpg}-Framed.jpg"
	done < <(ls -1 "img$i/"*.jpg)
	(( i++ ))
done
Con queste impostazioni le immagini risultanti saranno salvate nella directory "incorniciate"
la struttura finale sarà:

Codice: Seleziona tutto

8-) tree
.
├── cornici
│   ├── cornice-1.png
│   ├── cornice-2.png
│   └── cornice-3.png
├── img1
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
├── img2
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
├── img3
│   ├── van-gogh 0.jpg
│   ├── van-gogh 1.jpg
│   ├── van-gogh 2.jpg
│   └── van-gogh 3.jpg
├── incorniciate
│   ├── img1
│   │   ├── van-gogh 0-Framed.jpg
│   │   ├── van-gogh 1-Framed.jpg
│   │   ├── van-gogh 2-Framed.jpg
│   │   └── van-gogh 3-Framed.jpg
│   ├── img2
│   │   ├── van-gogh 0-Framed.jpg
│   │   ├── van-gogh 1-Framed.jpg
│   │   ├── van-gogh 2-Framed.jpg
│   │   └── van-gogh 3-Framed.jpg
│   └── img3
│       ├── van-gogh 0-Framed.jpg
│       ├── van-gogh 1-Framed.jpg
│       ├── van-gogh 2-Framed.jpg
│       └── van-gogh 3-Framed.jpg
└── script.sh
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

ciao @UbuNuovo
Grazie per il tuo intervento, adesso provo a fare qualche esperimento prendendo spunto da quanto hai scritto. Il problema che mi riesce difficile da affrontare è questo, lo spazio che deve occupare l'immagine all'interno delle varie cornici, non è sempre uguale, cambia a seconda del tipo di cornice. In linea di massima le dimensioni dell'immagine per le cornici verticali si aggirano intorno 453x610 px ma ci sono anche 404x546 px oppure 402x544 px, a questo punto mi chiedo come funziona il ridimensionamento fatto con mogrify. Andrebbe bene anche se l'immagine ottenuta dal ridimensionamento (per stare esattamente dentro la cornice) se non è precisa venga ritagliata, oppure la parte in eccesso venga coperta dalla cornice, però dovrebbe essere una parte minima dell'immagine (che deve comunque mantenere le proporzioni).

Cosa ne pensi?
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Io credevo che tu avessi già pronte le cornici adatte ai vari formati di immagine, per questo avevo fatto in modo di usare le cornici-1 sulle immagini img1, cornice-2 su img2 e così via.
Ora se i formati sono solo quelli citati ti bastano due cornici, una per le immagini verticali (quelle 453x610px) e una per i formati orizzontali, simili, (404x546 e 402x544 px).
Per i formati orizzontali la differenza è piccolissima quindi non starei a ridimensionarle basta fare una cornice che si adatti bene ai lati più corti di entrambi i formati quindi la cornice deve avere il rettangolo trasparente di 402x544px.
In questo modo la parte non trasparente della cornice copre 1 px per ogni lato dei formati 404x546, una quantità trascurabile.
Riassumendo!
Crei una cornice che si adatti alle immagini verticali, che abbia l'area trasparente di 453x610px e la chiami, per esempio, cornice-1.png e la salvi nella directory "cornici".
Le immagini verticali 453x610px le inserisci nella directory 'img1'

Crei una cornice che si adatti alle immagini orizzontali, che abbia l'area trasparente di 402x544px e la chiami, per esempio, cornice-2.png e la salvi nella directory "cornici".
Le immagini orizzontali 404x546 e 402x544 px le inserisci nella directory 'img2'
A questo punto puoi usare lo script così com'è, dalla directory contenente le directory: 'cornici', 'img1' e 'img2'.

Nel caso le variazioni di formato fossero più ampie le ridimensionerei tutte per rientrare nelle due cornici già fatte.
Non so come le utilizzerai ma in genere è bene avere dimensioni uniformi.
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

ho provato lo script, l'ho provato con solo due tipi di cornici ed ha funzionato bene. Tuttavia vorrei qualcosa di diverso, l'ideale per me sarebbe avere due script, uno per le immagini verticali e uno per le immagini orizzontali, che prendano come argomento il file da elaborare

per esempio con un comando tipo:

Codice: Seleziona tutto

cornice_verticale.sh nome_file.jpg


che processa il file passato come argomento e crei tutte le varianti (le immagini con applicate le diverse cornici). Il file passato come argomento avrà sempre la stessa risoluzione e lo script dovrebbe occuparsi di ridimensionarlo in base al rettangolo trasparente di ogni cornice.

Avendo a disposizione tutte le dimensioni esatte dei rettangoli trasparenti all'interno della cornice la cosa è fattibile? I file generati dallo script finiranno nella stessa directory del file di partenza.

Questo è quello che vorrei, e la prima domanda che mi viene in mente è: come si passa un file allo script come argomento? (Lo sapevo ma ho la memoria un po a breve termine : ))

Se hai voglia e tempo per darmi una mano ti ringrazio!!
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Allora non ho capite bene cosa vuoi fare dovresti spiegare meglio la situazione reale.

Passare un argomento si fa come hai fatto te:

Codice: Seleziona tutto

nome_script.sh argomento_1 argomento_2 argomento_3 ...
i valori degli argomenti li ritrovi in $N dove N è un intero
eseguendo lo script:
$0 conterrà il nome dello script in questo caso 'nome_script.sh' (o './nome_script.sh' dipende da come si richiama lo script)
$1 conterrà il primo argomento in questo caso 'argomento_1'
$2 conterrà il secondo argomento in questo caso 'argomento_2'
e così via.
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

La situazione reale è questa, con ogni probabilità dovro fare un sito e-commerce (si lo so che stai già ridendo!) per un tale che vende stampe con la possibilità di abbinarle a qualche tipo di cornice (10 tipi, 3 di legno e 7 di alluminio di diversi colori). Quando sarà il momento di caricare le immagini dei prodotti avrò un file per ogni stampa in vendita e dovrò preparare le varianti del prodotto che consistono nell'immagine del prodotto con applicate le varie cornici.

L'inserimento dei prodotti è già di per se una cosa noiosa e porta via tempo anche senza le immagini (considera che il sito penso di farglielo con wordpress + woocommerce). Per questo lo script mi verrebbe in aiuto, carico l'immagine del prodotto senza cornice (che avrà un prezzo) poi prendo l'immagine la do in pasto allo script che mi crera le varianti con le cornici, in modo da inserire poi i vari prezzi delle varianti, la disponibilità di magazzino le misure etc.. e infine carico le immagini delle varie varianti del prodotto (varie varianti... ; ) comodamente preparate dallo script risparmiando un sacco di tempo.
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

una cosa tipo:

prendo il file originale
lo ridimensiono adattandolo alla misura interna della cornice in legno
gli applico la cornice in legno

rielaboro il file orioginale
lo ridimensiono per la cornice di alluminio rossa
gli applico la cornice in alluminio rosso

e cosi via fino alla fine,

il tutto tradotto in uno script...
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Forse ho capito. Mi ero già fatto uno script che data un immagine crea altre copie in risoluzioni diverse, probabilmente basta aggiungere il comando composite.
Dopo cena gli butto un occhio.
Considera anche che altezza e larghezza delle immagini si possono ricavare con identify di imagemagick e si potrebbe adattare un solo script per le varie esigenze.
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

sto facendo qualche esperimento e credo che si può fare, resta da vedere la parte riguardante il ridimensionamento come si comporterà. In ogni caso le misure dei vari rettangoli trasparenti per le immagini verticali sono:

cornice noce 404x546 px
cornice ciliegio 402x544 px
cornici alluminio colorate sono tutte e 7 a 453x610 px

se vuoi fare delle prove qui ci sono tre cornici
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Il mio vecchio script fa anche bonifica dei nomi di file, creazione e spostamento in directory, ritaglio riempimento dello sfondo per immagini che non rispettano le giuste proprzioni etc, un sacco di codice che non ti serve.
Ho visto che le tre cornici proposte sono sempre la stessa ridimensionata in tre formati, allora non capisco... in questo caso converrebbe fare il composite con l'immagine grande e poi ridimensionare l'immagine risultante nei tre formati.
Ti faccio vedere una parte di codice per il ridimensionamento, quello per il composite lo conosci.
Potrebbe ispirarti, ora non posso starci dietro, se hai problemi domani sera posso rimetterci le mani.

Codice: Seleziona tutto

for i in *.jpg; do
	if (CONDIZIONE)  # esempio di if non ho messo la mia  perché dipende da altre variabili
		then
			convert -geometry x600 -quality 80 $i ./160_600/G_$i;
			convert -geometry 100x -quality 80 $i ./160_600/$i;
		else
			convert -geometry 100x -quality 80 $i ./160_600/$i;
			convert -geometry x600 -quality 80 $i ./600/$i;
			convert -geometry x480 -quality 80 $i ./480/$i;
			convert -geometry x198 -quality 80 $i ./198/$i;
			convert -geometry x100 -quality 80 $i ./100/$i;
	fi
done

in $i c'è il nome del file
-geometry xPIXEL e -geometry PIXELx Indicano i metodi di ridimensionamento in base ad altezza e in base alla larghezza
-quality 80 è la percentuale di compressione jpg
dopo c'è $i che è il nome dell'immagine
alla fine c'è il percorso di salvataggio e nome del file

ti potrebbe essere utile recuperare larghezza o altezza
per esempio:
per le altezze

Codice: Seleziona tutto

find . -type f -iname '*.jpg' -exec identify {} \; | grep -Po 'x\K[0-9]+'
per le larghezze

Codice: Seleziona tutto

find . -type f -iname '*.jpg' -exec identify {} \; | grep -Po '[0-9]+(?=x)'
non credo che serva altro. Il ciclo lo farai, credo su una lista di risoluzioni.
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

Grazie, adesso guardo bene tutto, vedo se riesco a ottenere quello che voglio e poi ti faccio sapere. Se domani sera se c'è ancora qualcosa che non va, vediamo.
Grazie per l'aiuto!

Buona serata.
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

:ciao:
Salva l'Ucraina! 🇺🇦
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Spero che tu abbia risolto! Ho fatto ora questo orrido script! Come emergenza funge ma andrebbero messi un po di controlli e semmai fare un ciclo nel ciclo per non stare a scrivere tutto.
Per provare ho fatto anche una cornice mogano e le varie cornici di alluminio mancanti in modo da averne 3 in legno e 7 in alluminio.

la struttura iniziale è

Codice: Seleziona tutto

8-) tree
.
├── cornice_verticale.sh
├── cornici_verticali
│   ├── piatta_ciliegio_640x498.png
│   ├── piatta_mogano_640x498.png
│   ├── piatta_noce_640x498.png
│   ├── star_arancio_482x640.png
│   ├── star_blu_482x640.png
│   ├── star_celeste_482x640.png
│   ├── star_fucsia_482x640.png
│   ├── star_nero_482x640.png
│   ├── star_rosso_482x640.png
│   └── star_verde_482x640.png
└── nome_img.jpg
lo script si esegue con:

Codice: Seleziona tutto

./cornice_verticale.sh nome_img.jpg
questo è lo script (molto brutto e grezzo ma comprensibile! Si potrebbe fare un ciclo sui vari colori/tipi e fare l'if su questi)

Codice: Seleziona tutto

#!/bin/bash

dir_cornici='cornici_verticali'
risoluzioni='404x546 402x544 402x544 453x610' # risoluzioni area trasparente in ordine alfabetico: ciliegio, mogano, noce, star
dir_out=$(pwd)
img_orig="$1"
i=1
mkdir ./temp

for r in $risoluzioni
do
	convert -geometry $r^ -quality 80 $img_orig ./temp/img_orig$r.jpg;
	if [ $i -eq 1 ];then
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/piatta_ciliegio_640x498.png" "$dir_out/${img_orig/.jpg}-ciliegio.jpg"
	elif [ $i -eq 2 ];then
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/piatta_mogano_640x498.png" "$dir_out/${img_orig/.jpg}-mogano.jpg"
	elif [ $i -eq 3 ];then
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/piatta_noce_640x498.png" "$dir_out/${img_orig/.jpg}-noce.jpg"
	else
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_arancio_482x640.png" "$dir_out/${img_orig/.jpg}-arancio.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_blu_482x640.png" "$dir_out/${img_orig/.jpg}-blu.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_celeste_482x640.png" "$dir_out/${img_orig/.jpg}-celeste.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_fucsia_482x640.png" "$dir_out/${img_orig/.jpg}-fucsia.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_nero_482x640.png" "$dir_out/${img_orig/.jpg}-nero.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_rosso_482x640.png" "$dir_out/${img_orig/.jpg}-rosso.jpg"
		composite -gravity center "./temp/img_orig$r.jpg" "$dir_cornici/star_verde_482x640.png" "$dir_out/${img_orig/.jpg}-verde.jpg"
	fi
	(( i++ ))
done
rm -rf ./temp

exit
eseguito lo script la struttura finale diventa:

Codice: Seleziona tutto

8-) tree
.
├── cornice_verticale.sh
├── cornici_verticali
│   ├── piatta_ciliegio_640x498.png
│   ├── piatta_mogano_640x498.png
│   ├── piatta_noce_640x498.png
│   ├── star_arancio_482x640.png
│   ├── star_blu_482x640.png
│   ├── star_celeste_482x640.png
│   ├── star_fucsia_482x640.png
│   ├── star_nero_482x640.png
│   ├── star_rosso_482x640.png
│   └── star_verde_482x640.png
├── nome_img-arancio.jpg
├── nome_img-blu.jpg
├── nome_img-celeste.jpg
├── nome_img-ciliegio.jpg
├── nome_img-fucsia.jpg
├── nome_img.jpg
├── nome_img-mogano.jpg
├── nome_img-nero.jpg
├── nome_img-noce.jpg
├── nome_img-rosso.jpg
└── nome_img-verde.jpg
Salva l'Ucraina! 🇺🇦
Avatar utente
rodolforizzo76
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 619
Iscrizione: sabato 19 gennaio 2008, 17:13
Desktop: plasma
Distribuzione: Kubuntu 20.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da rodolforizzo76 »

Grazie, avevo fatto anche io qualcosa e quello che ho messo insieme funziona, ma solo se l'immagine iniziale ha determinate misure. Adesso provo lo script che hai (gentilmente) scritto tu.

Ti faccio sapere.
Legge dell'Individuo: Nessuno e' veramente interessato o capisce quel che sta facendo chiunque altro.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4467
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 24.04.1 LTS
Sesso: Maschile
Contatti:

Re: sovrapporre immagini con imagemagick

Messaggio da UbuNuovo »

Il rapporto tra altezza e larghezza non può variare troppo (tra le varie immagini), specialmente per le cornici sottili.
Altrimenti potresti aggiungere il crop.
Guarda questa pagina
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite