Rimuovere i Dati EXIF dalle Immagini | SolutionCAFE IT

Rimuovere i Dati EXIF dalle Immagini

Rimuovere i Dati EXIF dalle Immagini

1920 1280 Nicola Montemurro

Cosa sono i Metadati dalle Immagini

Nel mondo digitale odierno, la privacy è un tema importante, specialmente quando si tratta di condividere immagini online. Ogni foto che scattiamo contiene informazioni invisibili note come dati EXIF (Exchangeable Image File Format), chiamati anche Metadati. Questi dati possono rivelare dettagli sensibili, come la posizione georeferenziata del luogo in cui è stata scattata l’immagine e le impostazioni della fotocamera o il nome dell’autore. Da qui nasce l’esigenza di uno strumento quale lo script Python cleanexif.py. In questo articolo, esploreremo la logica alla base di questo script e forniremo esempi di utilizzo per aiutarti a rimuovere in modo efficiente i dati EXIF dalle tue immagini.

Cos’è cleanexif.py?

cleanexif.py è uno script progettato per cercare e rimuovere i dati EXIF da file immagine in una directory specificata. Lo script offre diverse funzionalità utili, tra cui la possibilità di fare il backup dei file originali, escludere determinate estensioni di file e directory dalla scansione, e registrare le operazioni in un file di log.

Perché Rimuovere i Dati EXIF?

Benchè possano essere utili in molti casi, rimuovere i dati EXIF è fondamentale per proteggere la propria privacy. Prima di caricare foto sui social media o inviarle via email o condividerle attraverso un blog è consigliabile eliminare informazioni potenzialmente compromettenti. Inoltre, alcuni servizi online possono rifiutare immagini con dati EXIF per motivi di sicurezza.

Ecco un esempio di immagine, scaricata tramite motore di ricerca, utilizzata proprio in questo blog e “ripulita” con cleanexif.py, in questo caso si tratta di informazioni prevalentemente tecniche riguardando l’immagine stessa, ma il seti di dati disponibile, può riguardare informazioni molto più personali, quali ad esempio Nome Utente, coordinate geolocalizzate, etc.

Prima:

ExifTool Version Number         : 12.96
File Name                       : privacy-please.jpg
Directory                       : D:/Documenti/immagini
File Size                       : 177 kB
File Modification Date/Time     : 2024:07:22 13:45:56+02:00
File Access Date/Time           : 2024:09:25 12:53:15+02:00
File Creation Date/Time         : 2024:09:25 12:53:15+02:00
File Permissions                : -rw-rw-rw-
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Exif Byte Order                 : Big-endian (Motorola, MM)
Photometric Interpretation      : RGB
Make                            : NIKON CORPORATION
Camera Model Name               : NIKON D80
Orientation                     : Horizontal (normal)
Samples Per Pixel               : 3
X Resolution                    : 72
Y Resolution                    : 72
Resolution Unit                 : inches
Software                        : Adobe Photoshop 23.4 (Windows)
Modify Date                     : 2022:07:07 14:51:19
Exposure Time                   : 1/125
F Number                        : 1.4
Exposure Program                : Aperture-priority AE
ISO                             : 1600
Exif Version                    : 0221
Date/Time Original              : 2007:01:24 11:58:36
Create Date                     : 2007:01:24 11:58:36
Compressed Bits Per Pixel       : 4
Shutter Speed Value             : 1/125
Aperture Value                  : 1.4
Exposure Compensation           : 0
Max Aperture Value              : 1.4
Metering Mode                   : Spot
Light Source                    : Unknown
Flash                           : No Flash
Focal Length                    : 50.0 mm
Sub Sec Time                    : 20
Sub Sec Time Original           : 20
Sub Sec Time Digitized          : 20
Flashpix Version                : 0100
Color Space                     : sRGB
Exif Image Width                : 1920
Exif Image Height               : 1280
Sensing Method                  : One-chip color area
Custom Rendered                 : Normal
Exposure Mode                   : Auto
White Balance                   : Auto
Digital Zoom Ratio              : 1
Focal Length In 35mm Format     : 75 mm
Scene Capture Type              : Standard
Gain Control                    : High gain up
Contrast                        : High
Saturation                      : Normal
Sharpness                       : Normal
Subject Distance Range          : Unknown
Compression                     : JPEG (old-style)
Thumbnail Offset                : 948
Thumbnail Length                : 3098
XMP Toolkit                     : Adobe XMP Core 7.2-c000 79.566ebc5, 2022/05/09-07:22:29
Creator Tool                    : Ver.1.00
Metadata Date                   : 2022:07:07 14:51:19-07:00
Color Mode                      : RGB
ICC Profile Name                : sRGB IEC61966-2.1
History                         : 2022-07-07T14:50:52-07:00.File Privacy_Please_Hotel_Lock_3x2.jpg opened.2022-07-07T14:51:19-07:00.File D:\10-22-2017 D-Drive Files\DonkeyHotey\WhoWhatWhy\Gajda_Privacy\posted\Privacy_Please_Hotel_Lock_3x2.jpg saved.
Document ID                     : 2E6221C20317B13575DF0E8A7019FB0F
Instance ID                     : xmp.iid:602c8262-f052-5a48-9fc4-57906e3f94fe
Original Document ID            : 2E6221C20317B13575DF0E8A7019FB0F
Format                          : image/jpeg
History Action                  : saved
History Instance ID             : xmp.iid:602c8262-f052-5a48-9fc4-57906e3f94fe
History When                    : 2022:07:07 14:51:19-07:00
History Software Agent          : Adobe Photoshop 23.4 (Windows)
History Changed                 : /
Current IPTC Digest             : bf2a01135522004279f5c636cfdea9cd
Coded Character Set             : UTF8
Application Record Version      : 0
Date Created                    : 2007:01:24
Time Created                    : 11:58:36
IPTC Digest                     : bf2a01135522004279f5c636cfdea9cd
Displayed Units X               : inches
Displayed Units Y               : inches
Print Style                     : Centered
Print Position                  : 0 0
Print Scale                     : 1
Global Angle                    : 30
Global Altitude                 : 30
URL List                        :
Slices Group Name               : Privacy_Please_Hotel_Lock_3x2
Num Slices                      : 1
Pixel Aspect Ratio              : 1
Photoshop Thumbnail             : (Binary data 3098 bytes, use -b option to extract)
Has Real Merged Data            : Yes
Writer Name                     : Adobe Photoshop
Reader Name                     : Adobe Photoshop 2022
Photoshop Quality               : 12
Photoshop Format                : Standard
Image Width                     : 1920
Image Height                    : 1280
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Aperture                        : 1.4
Image Size                      : 1920x1280
Megapixels                      : 2.5
Shutter Speed                   : 1/125
Create Date                     : 2007:01:24 11:58:36.20
Date/Time Original              : 2007:01:24 11:58:36.20
Modify Date                     : 2022:07:07 14:51:19.20
Thumbnail Image                 : (Binary data 3098 bytes, use -b option to extract)
Date/Time Created               : 2007:01:24 11:58:36
Light Value                     : 3.9
Scale Factor To 35 mm Equivalent: 1.5
Circle Of Confusion             : 0.020 mm
Field Of View                   : 27.0 deg
Focal Length                    : 50.0 mm (35 mm equivalent: 75.0 mm)
Hyperfocal Distance             : 89.15 m

Dopo:

ExifTool Version Number         : 12.96
File Name                       : privacy-please.jpg
Directory                       : D:/Documenti/blog/example/images
File Size                       : 175 kB
File Modification Date/Time     : 2024:09:25 12:53:16+02:00
File Access Date/Time           : 2024:09:25 12:52:33+02:00
File Creation Date/Time         : 2024:09:25 12:52:33+02:00
File Permissions                : -rw-rw-rw-
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : None
X Resolution                    : 1
Y Resolution                    : 1
Image Width                     : 1920
Image Height                    : 1280
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 1920x1280
Megapixels                      : 2.5

Come Funziona cleanexif.py

Lo script è costruito attorno a funzioni modulari che gestiscono specifiche attività, funziona sia in ambiente Linux, Mac, Windows. Ecco un riepilogo della logica implementata:

1. Scansione delle Directory

Utilizza os.walk per esaminare ricorsivamente una directory specificata, identificando file di tipo immagine.

2. Rimozione dei Dati EXIF

Usa la libreria PIL (Pillow) per aprire i file immagine e rimuovere i dati EXIF, se sono presenti.

3. Backup dei File Originali

Prima di modificare un’immagine, crea un backup, qualora l’utente lo ritenga necessario, in una directory designata, assicurandosi di mantenere una copia dei file originali interessati dall’operazione di rimozione dei metadati.

4. Registrazione delle Operazioni

Le azioni intraprese sono registrate in un file di log, utile per controllare il processo e diagnosticarne eventuali errori.

Esempi di Utilizzo

Perdhè lo script funzioni, occorre che sia installata la libreria Pillow; Per installarla utilizza il seguente comando:

 python3 -m pip install Pillow

Installazione delle Dipendenze

Esecuzione Base

Per eseguire lo script, utilizza il seguente comando:

python cleanexif.py /path/to/images

Questo comando avvierà la scansione della directory /path/to/images alla ricerca di file immagine dai quali rimuovere i dati EXIF.

Esempio Completo

Supponiamo di voler scansionare una directory specifica, escludendo alcuni tipi di file e directory. Puoi farlo con il comando:

python cleanexif.py /path/to/images \
--log-path D:\EXIF\logs\example.log \
--backup-path /path/to/backups \
--exclude-exts .png .gif \
--exclude-dirs dir1 dir2 \
--max-log-size 10MB \
--verbose

In dettaglio:

  • log-path: Specifica il percorso del file di log, creando automaticamente la directory se non esiste.
  • backup-path: Indica dove salvare i backup dei file originali.
  • exclude-exts: Esclude file con estensioni .png e .gif dalla scansione.
  • exclude-dirs: Esclude le directory dir1 e dir2 dalla scansione.
  • max-log-size: Limita la dimensione del file di log a 10 MB.
  • verbose: Attiva un output dettagliato durante l’esecuzione.

Esempio di utilizzo tramite Crontab

Programmazione temporale, in questo caso, tramite Crontab, lo script viene eseguito al minuto 30 di ogni ora e serve a ripulire le immagini di questo blog, togliendo l’onere, a chi allega le immagini, di occuparsi della rimozione dei metadati.

30 * * * * /usr/bin/python3 /usr/local/scripts/clenaexif.py /usr/local/apache2.4/websites/blog/wp-content/uploads \
--backup-path /usr/local/cleanexif-backup/blog-image-backup --log-path /var/log --max-log-size 10MB

Esempio di utilizzo tramite file batch Windows

@echo off

:: ############## SOLUTIONCAFE.IT

set SCRIPT_PATH=E:\Progetti\software\scripts\python\EXIF\cleanexif.py
set IMAGES_DIR=D:\Documenti\blog\solutioncafe.it
set LOG_PATH=%IMAGES_DIR%
set BACKUP_PATH=%IMAGES_DIR%\exifimage-backup
set EXCLUDE_DIRS=exifimage-backup
set MAX_LOG_SIZE=10MB

:: Esegue
python "%SCRIPT_PATH%" "%IMAGES_DIR%" --log-path "%LOG_PATH%" --backup-path "%BACKUP_PATH%" --exclude-dirs %EXCLUDE_DIRS% --max-log-size %MAX_LOG_SIZE% --verbose

:: Messaggio di completamento
echo Operazione completata!
pause

Considerazioni finali

Rimuovere i dati EXIF dalle immagini è un passo fondamentale per proteggere la tua privacy online. Lo script cleanexif.py fornisce una soluzione semplice ed efficace per gestire i file immagine. Con la sua versatilità e facilità d’uso, diventerà un alleato prezioso per chiunque desideri mantenere il controllo sulle proprie informazioni personali.

Risorse Aggiuntive

Questo il link per approfondire le funzionalità di Pillow

Questo il link per approfondire le funzionalità di cleanexif.py

Nicola Montemurro

Nicola Montemurro un Consulente IT specializzato in sicurezza e resilienza infrastrutturale, Windows, Linux, VMWare, CCNA

Tutte le storie di:Nicola Montemurro

    Preferenze Privacy

    Quando visiti il nostro sito web, possono essere memorizzate alcune informazioni, di servizi specifici, tramite il tuo browser, di solito sotto forma di cookie. Qui puoi modificare le tue preferenze sulla privacy. Il blocco di alcuni cookie può influire sulla tua esperienza sul nostro sito Web e sui servizi che offriamo.

    Click to enable/disable Google Analytics tracking code.
    Click to enable/disable Google Fonts.
    Click to enable/disable Google Maps.
    Click to enable/disable video embeds.
    Il nostro sito web utilizza cookie, principalmente di terze parti. Personalizza le preferenze sulla privacy e/o acconsenti all'utilizzo dei cookie.