Intelligente Lösungen
in neuer Dimension

ImageMagick: Farbanteil

Für Dinge, die ich aus dem Internet herunterlade, speichere ich gerne den Bericht von VirusTotal.com. Wenn man sich den Bericht anschaut, erkennt man sehr leicht, ob eine heruntergeladene Datei eine Viruswarnung auslöst oder nicht.

Schön wäre, wenn man das halbwegs ordentlich automatisch erkennen können. Idee: Schaue nach dem Rot-Anteil und schlage “Alarm”, wenn der zu hoch ist!

ImageMagick installieren

1
2
3
sudo apt update
sudo apt upgrade
sudo apt install imagemagick

Farbanteil ermitteln

Nachfolgenden Ablauf habe ich hier gefunden: ImageMagic – Detect amount of color in image

VirusTotal-Bildchen

VirusTotal - original

Wandeln nach transparent

1
2
3
# grün: 15% #55b575
# rot:  30% #e90050
convert "virustotal.png" -fuzz 15% -transparent "#55b575" +fuzz "virustotal-transparent.png"

VirusTotal - grün zu transparent

Schwarz einfärben

1
convert "virustotal-transparent.png" -fill black +opaque none "virustotal-black.png"

VirusTotal - schwarz

Weiß einfärben

1
convert "virustotal-black.png" -channel rgba -fill white -opaque none "virustotal-white.png"

VirusTotal - weiß

Weiß-Anteil ausgeben

1
2
convert "virustotal-white.png" -format "%[fx:100*mean]" info:
0.77685

Farbskript color-percentage.sh

1
2
3
4
5
6
7
8
9
#!/bin/sh
#
# $1 ... png file
# $2 ... color
# $3 ... fuzz
#
convert "$1" -fuzz "$3" -transparent "$2" +fuzz \
        -fill black +opaque none -channel rgba -fill white -opaque none \
        -format "%[fx:100*mean]" info:

Links

Historie und Anmerkung

  • 2021-12-05: Erste Version