Browse Source

Merge branch 'master' of pongrebio/code-library into master

netico 2 years ago
parent
commit
dde915d3ba
1 changed files with 69 additions and 48 deletions
  1. 69 48
      Graphics/image-anonymizer/image-anonymizer.sh

+ 69 - 48
Graphics/image-anonymizer/image-anonymizer.sh

@@ -6,7 +6,7 @@ TITLE="Image anonymizer"
 
 # ASSETS
 GUIPATH=$(dirname "$0")
-GUIPATH="$GUIPATH/gui" 
+GUIPATH="$GUIPATH/gui"
 GUIPATH=$(cd "$GUIPATH" && pwd)
 if [[ -z "$GUIPATH" ]] ; then
   echo "For some reason, the path is not accessible."
@@ -44,6 +44,20 @@ zenstart() {
 zendir() {
 	DIR=$(zenity --window-icon="$GUIPATH/tux.png" --title="$TITLE" --file-selection --directory 2> /dev/null)
 }
+zenchoutff() {
+	zenity --window-icon="$GUIPATH/tux.png" \
+		--title="$TITLE" \
+		--text "Please choose the output format" \
+		--list \
+		--radiolist \
+		--hide-header \
+		--column "Radio buttons" \
+		--column="Output file format" \
+		--column="Output file format (extension)" \
+		--hide-column=3 \
+		--print-column=3 \
+		TRUE PNG png FALSE JPEG jpg 2> /dev/null
+}
 zenend() {
 	zenity --window-icon="$GUIPATH/tux.png" \
 		--title="$TITLE" \
@@ -54,7 +68,7 @@ zenend() {
 		--cancel-label="Restart" \
 		--ok-label="Exit" \
 		2> /dev/null
-	
+
 	rm -f "$HTML"
 }
 zenjob() {
@@ -91,52 +105,59 @@ then
 	if [ "$ZENDIR" -eq 0 ]
 	then
 		cd $DIR;
-		
-		cat "$GUIPATH/top.tpl" > $HTML
-		echo "<h2>Thank you for using "$TITLE".</h2>" >> $HTML
-		(
-			P=0
-			for F in *;
-			do
-					identify -quiet "$F" &> /dev/null
-					if [ "$?" -eq 0 ]
-					then
-						N=$(md5sum "$F" | awk '{print $1}')
-						N="$N.anon.png"
-
-						OLDTYPE=$(file "$F" | cut -d':' -f2)
-						OLDTYPE=$(echo $OLDTYPE | sed 's/ *$//g')
-						if [ ${#OLDTYPE} -gt 64 ]
+		OUTFF=$(zenchoutff)
+		if [ "$OUTFF" != "" ]; then
+			cat "$GUIPATH/top.tpl" > $HTML
+			echo "<h2>Thank you for using "$TITLE".</h2>" >> $HTML
+			(
+				P=0
+				for F in *;
+				do
+						identify -quiet "$F" &> /dev/null
+						if [ "$?" -eq 0 ]
 						then
-							OLDTYPE="${OLDTYPE:0:61}..."
-						fi
-
-						# This is the important part of the script!
-						convert "$F" "$N" &> /dev/null
-						exiftool -overwrite_original -q -all= "$N" &> /dev/null
-						optipng --silent "$N" &> /dev/null
-						
-						OLDSIZE=$(ls -lah "$F" | awk '{print $5}')
-						NEWSIZE=$(ls -lah "$N" | awk '{print $5}')
-						
-						OLDNAME="$F"
-						if [ ${#OLDNAME} -gt 24 ]
-						then
-							OLDNAME="${OLDNAME:0:21}..."
-						fi
-
-						P=$(($P + 10))
-						echo "$P"
-						echo "# $OLDNAME ($OLDSIZE) $OLDTYPE"
-						echo "<p>&larr; <b>$F</b> ($OLDSIZE)<br>	&bull; $OLDTYPE<br>&rarr; <b>$N</b> ($NEWSIZE)" >> $HTML
-				fi
-			done
-			echo "100"
-			echo "# Thats' all folks!"
-		) | zenjob 
-
-		if [ "$?" -eq 1 ]
-		then zenexit
+
+							OTYPE=$(file -b --mime-type "$F" | sed -e "s/^[^/]*\///")
+
+							N=$(md5sum "$F" | awk '{print $1}')
+							N="$N.anon.$OUTFF"
+
+							OLDTYPE=$(file "$F" | cut -d':' -f2)
+							OLDTYPE=$(echo $OLDTYPE | sed 's/ *$//g')
+							if [ ${#OLDTYPE} -gt 64 ]
+							then
+								OLDTYPE="${OLDTYPE:0:61}..."
+							fi
+
+							# This is the important part of the script!
+							[ "$OTYPE" != "$OUTFF" ] && convert "$F" "$N" &> /dev/null || cp "$F" "$N" &> /dev/null
+							exiftool -overwrite_original -q -all= "$N" &> /dev/null
+							[ "$OTYPE" == "png" ] && optipng --silent "$N" &> /dev/null
+
+							OLDSIZE=$(ls -lah "$F" | awk '{print $5}')
+							NEWSIZE=$(ls -lah "$N" | awk '{print $5}')
+
+							OLDNAME="$F"
+							if [ ${#OLDNAME} -gt 24 ]
+							then
+								OLDNAME="${OLDNAME:0:21}..."
+							fi
+
+							P=$(($P + 10))
+							echo "$P"
+							echo "# $OLDNAME ($OLDSIZE) $OLDTYPE"
+							echo "<p>&larr; <b>$F</b> ($OLDSIZE)<br>	&bull; $OLDTYPE<br>&rarr; <b>$N</b> ($NEWSIZE)" >> $HTML
+					fi
+				done
+				echo "100"
+				echo "# Thats' all folks!"
+			) | zenjob
+
+			if [ "$?" -eq 1 ]
+			then zenexit
+			fi
+		else
+			zenexit
 		fi
 	fi
 	if [ "$ZENDIR" -eq 1 ]
@@ -149,7 +170,7 @@ then
 	then exit
 	fi
 	if [ "$ZENEND" -eq 0 ]
-	then 
+	then
 		cd "$GUIPATH"
 		exec ../$(basename $0) && exit
 	fi