Nån som är haj på ImageMagick? Problem med PNG transparens och liquid-rescaling mm.
Jag håller på med ett litet installations-skript till ett av mina teman till Gnome. För att komma runt en viss spärr Gnome har som hindrar min kreativtet så har jag helt enkelt kommit på att jag kan "ful-hacka" mig runt spärren genom att slänga på en transparent bild på ett väggpapper där gnome-panel ska vara. Problemet är att detta inte blir speciellt användarvänligt då många inte vet hur man redigerar bilder. Ett ImageMagick skript blir nog den mest användarvänliga lösningen jag kan hitta på.
Men nog om det. Nu till problemen.
För nuvarande ser skriptet ut så här:
#!/bin/bash
# Find the biggest file in the folder as its certainly the wallpaper
wallpaper=$(ls -S1 | head -1)
# Use xdpyinfo to get the screen resolution : widthxheight
resolution=$(xdpyinfo | grep dimensions | grep -o \[0-9\]*x\[0-9\]* | head -1)
# Isolate the width (for the panel)
screen_width=$(echo $resolution | sed s/x.*//)
# Get the width of panel.png (we need it for liquid resize)
panel_width=$(identify panel.png | grep -o \[0-9\]*x\[0-9\]* | head -1 | sed s/x.*//)
# calculate the resizing amount needed for the width of panel.png
width_in_percent=$(($screen_width*100/panel_width))
# Show what we are doing
echo "Wallpaper : $wallpaper"
echo "Panel : panel.png"
echo "Resolution : $resolution"
# Imagemagick awesomeness appends here
convert $wallpaper -geometry $resolution\! $resolution-$wallpaper
convert panel.png -liquid-rescale $width_in_percent%\!x100%\! $screen_width-panel.png
# Et voila! New files are "widthxheight-wallpaperfilename" and "width-panel.png"
echo "Files produced : $resolution-$wallpaper $screen_width-panel.png"
Det är långt ifrån färdigt då jag stött på problem med alpha transparens och liquid rescaling.
Mitt mål är helt enkel detta:
1. Få denna bilden att bli förstorad på bredden till användarens skärmupplösning utan att sträcka ut de rundade kanterna:
Det första problemet jag har är att bakgrunden inte behåller sin alpha transparens, den blir bara svartvit.
Har provat allt från -alpha on -background transparent -colorspace RGB -channel RGBA osv utan nåt lyckat resultat. Sökt google som en galning också men inte hittat nån lösning.
Sen vet jag inte varför liquid-rescale inte ignorerar de rundade kanterna, pluginet till GIMP med samma namn gör ju rätt från början.
2. "Klistra in" $screen_width-panel.png längst upp på $resolution-$wallpaper så att slutresultatet blir så här:
(Klicka för att förstora.)
(Väggpappiret kan du ladda ner här: http://lassekongo83.deviantart.com/art/Moar-of-those-18084439... )
Detta är första gången jag använder ImageMagick, så jag är tacksam om jag kan få lite hjälp.
Min GitHub: https://github.com/lassekongo83