Il processo produttivo

Dall'ingranditore al PC
Dorso per la carte de visite dei frattali

Se avete avuto modo di girovagare un po' in questo sito avrete notato che mi interesso di computer ed informatica da più di 40 anni.

C'è anche una apposita sezione, «40 anni di informatica» che inizia con la foto di un ingranditore IFF Eurogon; no, non aveva assolutamente nulla di elettronico, ma se non ci fosse stato quello...

Calcolatrice programmabile Texas TI-58C

Molti anni fa, convinto da mia moglie ad acquistare una videocamera, iniziai a riversare i filmini dei miei figli su dei DVD per i quali creavo dei menu per renderli simili a quelli dei film della Disney.

Realizzare tale struttura comportava la creazione di un gran numero di immagini con dimensioni e posizioni ben precise, lavoro molto noioso da fare a mano.

La videocamera Canon

Ricerche su internet hanno portato alla scoperta di ImageMagick (Nuova pagina) una sorta di "coltellino svizzero" per la conversione di formato e numerose altre elaborazioni.

Caratteristica dello strumento è il fatto di non avere interfaccia grafica: niente mouse, niente anteprima; solo comandi da tastiera.

Lungi dall'essere una limitazione questo lo rende ideale per operazioni ripetitive da eseguire su un gran numero di immagini, cosa che mi è risultata utile molte volte anche in ambito lavorativo.

L'esperienza di realizzazione dei DVD è confluita in un lungo articolo sulla rivista «Computer Programming» e in un tutorial su questo sito.

Quando si è trattato di elaborare le immagini per le carte de visite in modo da poterle stampare su supporti commerciali, ho subito pensato di utilizzare ImageMagick.
Da allora sono cambiate alcune cose, ho utilizzato linguaggi più moderni che permettono cose decisamente più sofisticate, ma i concetti di base sono rimasti gli stessi.

Computer Programming ed in generale le riviste cartacee di programmazione hanno chiuso i battenti da tempo; ma, per chi fosse interessato, ci sono i sorgenti su GitHub (Nuova pagina) e la documentazione su questo sito.

L'ex stabilimento Arrigoni a Cesena
L'ex stabilimento Arrigoni a Cesena

Per i temerari c'è anche la guida ai sorgenti dove si illustra come sono fatti i programmi all'interno.
Sicuramente qualcuno ricorderà lo slogan "a scatola chiusa compro solo Arrigoni"; beh, io sono curiosissimo di sapere cosa c'è dentro la scatola e credo ci siano tanti altri che, come me, vogliono scoprire come sono fatte le cose che si usano.

La creazione dei dorsi di «bicingiro»
La creazione dei dorsi di «bicingiro»

E' probabile che al lettore di queste pagine, verosimilmente interessato all'aspetto fotografico, possa non interessare come il sistema funzioni; ma per i più curiosi ecco il batch che raccoglie le foto e le accorpa due a due per essere stampate su delle cartoline 10x15.

rem test for montaggiofoto scripting

set projectdir=C:\projects\Contemporary_CDV\
set bin=%projectdir%bin\build\net6.0\
set work=C:\foto\2022\dozza\bicingiro\

%bin%MontaggioFoto --dpi=600 ^
 --script=@%work%aligntop.cs ^
 --fullsize ^
 --output=%work%render\bicingiro ^
 %work%*.jpg
 
%bin%MontaggioFoto --dpi=600 ^
 --fullsize ^
 --output=%work%render\presentazione ^
 %work%presentazione.psd %work%presentazione.psd
 

Niente di differente da quanto si faceva negli anni '80 con il DOS, i comandi sono sempre quelli.

Il programma MontaggioFoto fa parte dei «Contemporary Carte de Visite Tools» che potete scaricare da questo link (Nuova pagina); se utilizzate i programmi in UNIX (Linux o Mac) ovviamente dovrete adattare la sintassi alla shell utilizzata.

Se copiate ed eseguite il programma così come riportato questo non funzionerà perchè manca lo script aligntop.cs, riportato qui sotto:

// copyright (c) 2020-2022 Roberto Ceccarelli - Casasoft
// http://strawberryfield.altervista.org
//
// This file is part of Casasoft Contemporary Carte de Visite Tools
// https://github.com/strawberryfield/Contemporary_CDV
//
// Casasoft CCDV Tools is free software:
// you can redistribute it and/or modify it
// under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Casasoft CCDV Tools is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU AGPL v.3
// along with Casasoft CCDV Tools.  
// If not, see <http://www.gnu.org/licenses/>.

public MagickImage ProcessOnLoad(MagickImage image)
{
    // Resize the image and put aligned to top
    MagickImage img1 = Utils.RotateResizeAndFill(image, engine.fmt.CDV_Internal_v, engine.FillColor);
    img1.Trim();
    image = engine.img.CDV_Full_v();
    image.Composite(img1, Gravity.North, 0, engine.fmt.ToPixels(5));

    return image;
}

Questi script, in linguaggio C#, permettono di modificare il normale comportamento dei programmi per ottenere risultati particolari; nel caso in esame l'immagine viene allineata al bordo superiore invece di essere centrata come farebbe il programma normalmente.

Le carte de visite assemblate per la stampa

Situazione analoga per i dorsi:

rem Montaggio Dorsi Dozza 2022

set projectdir=C:\projects\Contemporary_CDV\
set bin=%projectdir%bin\build\net6.0\
set work=C:\foto\2022\dozza\dorsi\
set common=%bin%MontaggioDorsi --dpi=600 --script=@%work%addlogo.cs --tag=%work%logo.png --paper=Medium

%common% --output=%work%render\dorsi1 ^
 %work%brixen_foto2.jpg ^
 %work%campo_tures.jpg ^
 %work%cesena_foto.jpg

%common% --output=%work%render\dorsi2 ^
 %work%cesenatico_foto.jpg ^
 %work%eremo_s_alberico_foto.jpg ^
 %work%firenze_smn.jpg

%common% --output=%work%render\dorsi3 ^
 %work%milano_foto2.jpg ^
 %work%pallanza_foto.jpg ^
 %work%dorso_prastmann.jpg

%common% --output=%work%render\dorsi4 ^
 %work%rimini_foto.jpg ^
 %work%santarcangelo_foto2.jpg ^
 %work%torrepedrera.jpg

%common% --output=%work%render\dorsi5 ^
 %work%viserba_foto.jpg ^
 %work%mima2-1.jpg ^
 %work%dorsi_dozza_2022.jpg
 

In questo caso viene utilizzato il programma MontaggioDorsi accompagnato dallo script addlogo.cs

// copyright (c) 2020-2022 Roberto Ceccarelli - Casasoft
// http://strawberryfield.altervista.org
//
// Adds "bicingiro" logo to images

public MagickImage ProcessOnLoad(MagickImage image)
{
    image = Utils.RotateResizeAndFill(image, engine.fmt.CDV_Full_v, engine.FillColor);
    image.Composite(new MagickImage(engine.Tag), Gravity.South, 0, engine.fmt.ToPixels(5), CompositeOperator.Over);

    return image;
}

Il nome del file dovrebbe far intuire che lo script sovrappone una immagine contenente il logo della serie e l'indicazione dell'autore.

Dorsi delle carte de visite assemblati per la stampa

Infine, con i vecchi batch, si possono anche preparare le immagini per illustrare queste pagine con lo script riportato di seguito:

rem Montaggio immagin per sito Bicingiro Dozza 2022

rem Assegnazioni comuni

set dest=C:\Users\rober\Documents\sito\bicingiro\foto\mostra\
set foto=C:\foto\2022\dozza\bicingiro\
set dorsi=C:\foto\2022\dozza\dorsi\
set logo=%dorsi%logo.png

rem card di presentazione

set main=presentazione.jpg
set back=dorsi_dozza_2022.jpg
set comp=intro.jpg
magick -size 1024x800 xc:white ^
 %dorsi%%back% -geometry 512x800+0+0 -gravity northwest -composite ^
 %foto%%main% -geometry 512x800+0+0 -gravity northeast -composite ^
 %logo% -geometry 432x122+40+40 -gravity southwest -composite ^
 -bordercolor black -border 1 ^
 %dest%%comp%

rem card standard

set main=campo_tures.jpg
set back=campo_tures.jpg
set comp=campo_tures.jpg
call :render

set main=brixen.jpg
set back=brixen_foto2.jpg
set comp=brixen.jpg
call :render

set main=casere.jpg
set back=dorso_prastmann.jpg
set comp=casere.jpg
call :render

set main=cesena.jpg
set back=cesena_foto.jpg
set comp=cesena.jpg
call :render

set main=cesenatico.jpg
set back=cesenatico_foto.jpg
set comp=cesenatico.jpg
call :render

set main=eremo_s_alberico.jpg
set back=eremo_s_alberico_foto.jpg
set comp=eremo_s_alberico.jpg
call :render

set main=firenze.jpg
set back=firenze_smn.jpg
set comp=firenze.jpg
call :render

set main=milano2_v.jpg
set back=milano_foto2.jpg
set comp=milano.jpg
call :render

set main=mi-ma.jpg
set back=mima2-1.jpg
set comp=milano_marittima.jpg
call :render

set main=pallanza_v.jpg
set back=pallanza_foto.jpg
set comp=pallanza.jpg
call :render

set main=rimini_v.jpg
set back=rimini_foto.jpg
set comp=rimini.jpg
call :render

set main=santarcangelo.jpg
set back=santarcangelo_foto2.jpg
set comp=santarcangelo.jpg
call :render

set main=torre_pedrera.jpg
set back=torrepedrera.jpg
set comp=torre_pedrera.jpg
call :render

set main=viserba.jpg
set back=viserba_foto.jpg
set comp=viserba.jpg
call :render

rem termina l'esecuzione del programma

goto :EOF

rem routine per l'assemblaggio delle immagini

:render
magick -size 1024x800 xc:white ^
 %foto%%main% -geometry 432x720+40+40 -gravity northwest -composite ^
 %dorsi%%back% -geometry 512x800+0+0 -gravity northeast -composite ^
 %logo% -geometry 432x122+40+40 -gravity southeast -composite ^
 -bordercolor black -border 1 ^
 %dest%%comp%

exit /B


rem probabilmente non è necessario, ma non si sa mai

:EOF

Il concetto, seppure con strumenti assai differenti, è sempre quello delle lastre ad esposizione multipla di Disdéri da cui tutto questo ha inizio.

Terminata la descrizione della parte software del progetto passiamo alla parte "hardware".

Inizio pagina
 
Precedente
Sommario
Successivo