#!/bin/bash # # program to create the icons # uses imagemagick # # 17. May 2004 # Diether Knof scaling=80 if [ ! -e ../cards/club/queen.png ]; then echo "could not find '../cards/club/queen.png' -- wrong directory?" exit 1 fi PATH=$PATH:../../../bin/ # get the width and the height of the cards #width=`xpmtoppm ../cards/club/queen.png | pnmfile | awk '{ print $4 }'` #height=`xpmtoppm ../cards/club/queen.png | pnmfile | awk '{ print $6 }'` width=$(identify -format "%w" ../cards/club/queen.png) height=$(identify -format "%h" ../cards/club/queen.png) height_half=$(( ${height} / 2 )) overlap_width=$(( ${width} / 4 )) FILE_PIXEL=$(tempfile -p pixel -s .png) FILE_OVERLAP=$(tempfile -p overlap -s .png) FILE_OVERLAP_TMP=$(tempfile -p overlap_tmp -s .png) overlap() { convert ${FILE_PIXEL} -resize $(( ${width} + ($# - 1) * ${overlap_width} ))x${height_half}\! ${FILE_OVERLAP} for (( i = 0; $# != 0 ; i++ )); do composite -compose src-over -geometry +$(( $i * ${overlap_width} ))+0 ../cards/$1 ${FILE_OVERLAP} ${FILE_OVERLAP_TMP} \ && mv ${FILE_OVERLAP_TMP} ${FILE_OVERLAP} shift done # for i cat ${FILE_OVERLAP} } echo -e "P4\n1 1\n" \ | convert -transparent white - ${FILE_PIXEL} # re.png overlap club/queen.png \ > re.png thickness_x=$(( ${width} / 10 )) thickness_y=$(( ${height} / 10 )) convert -fill red -draw "polygon \ 0,$(( $height_half - ${thickness_y} )) \ 0,$(( $height_half )) \ ${thickness_x},$(( $height_half )) \ $width,${thickness_y} \ $width,0 \ $(( $width - ${thickness_x} )),0 \ " re.png t.png composite -compose In t.png re.png contra.png # Soli overlap club/jack.png spade/jack.png heart/jack.png diamond/jack.png \ > solo.jack.png overlap club/queen.png spade/queen.png heart/queen.png diamond/queen.png \ > solo.queen.png overlap club/king.png spade/king.png heart/king.png diamond/king.png \ > solo.king.png overlap club/queen.png spade/queen.png heart/jack.png diamond/jack.png \ > solo.queen-jack.png overlap club/king.png spade/king.png heart/jack.png diamond/jack.png \ > solo.king-jack.png overlap club/king.png spade/king.png heart/queen.png diamond/queen.png \ > solo.king-queen.png overlap club/king.png spade/king.png heart/queen.png diamond/jack.png \ > solo.koehler.png overlap spade/queen.png heart/jack.png club/ace.png club/king.png \ > solo.club.png overlap club/queen.png heart/jack.png spade/ace.png spade/king.png \ > solo.spade.png overlap club/queen.png diamond/jack.png heart/ace.png heart/king.png \ > solo.heart.png overlap club/queen.png heart/jack.png diamond/ace.png diamond/king.png \ > solo.diamond.png overlap club/ace.png spade/ace.png heart/ace.png diamond/ace.png \ > solo.meatless.png # marriage overlap club/queen.png club/queen.png \ > marriage.png overlap club/queen.png club/queen.png diamond/jack.png spade/ace.png \ > marriage.foreign.png overlap club/queen.png club/queen.png heart/jack.png diamond/ace.png \ > marriage.trump.png overlap club/queen.png club/queen.png heart/ace.png spade/ace.png \ > marriage.color.png overlap club/queen.png club/queen.png club/ace.png club/ace.png \ > marriage.club.png overlap club/queen.png club/queen.png spade/ace.png spade/ace.png \ > marriage.spade.png overlap club/queen.png club/queen.png heart/ace.png heart/ace.png \ > marriage.heart.png # genscher overlap diamond/king.png diamond/king.png \ > genscher.png # poverty overlap heart/queen.png spade/jack.png diamond/ten.png \ > poverty.png overlap heart/queen.png spade/jack.png diamond/ten.png \ > poverty.3.png overlap heart/queen.png diamond/ten.png club/ace.png \ > poverty.2.png overlap heart/queen.png club/ace.png heart/king.png \ > poverty.1.png overlap club/ace.png heart/king.png spade/ten.png \ > poverty.0.png # thrown nines overlap club/nine.png spade/nine.png heart/nine.png diamond/nine.png \ > thrown_nines.png # thrown kings overlap club/king.png spade/king.png heart/king.png diamond/king.png \ > thrown_kings.png # thrown nines and kings overlap club/king.png spade/king.png heart/nine.png diamond/nine.png \ > thrown_nines_and_kings.png # fox highest trump overlap diamond/ace.png diamond/ten.png diamond/king.png diamond/nine.png \ > fox_highest_trump.png # swines overlap club/ace.png club/ace.png \ > swines.club.png overlap spade/ace.png spade/ace.png \ > swines.spade.png overlap heart/ace.png heart/ace.png \ > swines.heart.png overlap diamond/ace.png diamond/ace.png \ > swines.diamond.png # hyperswines overlap club/nine.png club/nine.png \ > hyperswines.club.png overlap spade/nine.png spade/nine.png \ > hyperswines.spade.png overlap heart/nine.png heart/nine.png \ > hyperswines.heart.png overlap diamond/nine.png diamond/nine.png \ > hyperswines.diamond.png # without nines overlap club/king.png club/king.png \ > hyperswines.king.club.png overlap spade/king.png spade/king.png \ > hyperswines.king.spade.png overlap heart/king.png heart/king.png \ > hyperswines.king.heart.png overlap diamond/king.png diamond/king.png \ > hyperswines.king.diamond.png # swines and hyperswines overlap club/ace.png club/nine.png \ > swines-hyperswines.club.png overlap spade/ace.png spade/nine.png \ > swines-hyperswines.spade.png overlap heart/ace.png heart/nine.png \ > swines-hyperswines.heart.png overlap diamond/ace.png diamond/nine.png \ > swines-hyperswines.diamond.png # without nines overlap club/ace.png club/king.png \ > swines-hyperswines.king.club.png overlap spade/ace.png spade/king.png \ > swines-hyperswines.king.spade.png overlap heart/ace.png heart/king.png \ > swines-hyperswines.king.heart.png overlap diamond/ace.png diamond/king.png \ > swines-hyperswines.king.diamond.png # dollen overlap heart/ten.png heart/ten.png \ > dollen.png # specialpoints overlap club/ace.png spade/ten.png diamond/ace.png heart/ten.png \ > doppelkopf.png # no_*_reply for limit in 120 90 60 30 0; do scale=8 echo "%!PS-Adobe-3.0 %%LanguageLevel: 2 %% %%Title: no $limit reply %%For: Diether Knof %%CreationDate: 15-12-2006 %%Creator: Diether Knof %% %%Orientation: Portrait %%BoundingBox: 0 0 $(($scale * $width)) $(($scale * $width / 2)) %%Pages: 1 %% %%EndComments %Groesse ~ 842x595 $scale dup scale /breite $(($width)) def /hoehe $(($width / 2)) def % % change encoding to ISO8859-1 - reiner@schildi.xnc.com % % ISOfindfont => % /ISOfindfont { dup 100 string cvs (ISO-) exch concatstrings cvn exch findfont dup maxlength dict begin { 1 index /FID ne {def}{pop pop} ifelse } forall /Encoding ISOLatin1Encoding def currentdict end definefont } def /Times-ItalicBold ISOfindfont setfont /Zentriere { % Text /Groesse exch def /Text exch def gsave % /StandardSymL ISOfindfont ISOfindfont Groesse scalefont setfont breite Text stringwidth pop sub 2 div 1 moveto Text show grestore } def %%Page: 1 1 /Times-Bold ($limit) $(($width * 2 / 3)) Zentriere showpage quit"\ > no_${limit}_reply.ps #convert -colors 3 -transparent white no_${limit}_reply.ps no_${limit}_reply.png convert -colors 2 -transparent white no_${limit}_reply.ps no_${limit}_reply.png mogrify -transparent white no_${limit}_reply.png mogrify -resize ${width}x$(($width / 2)) no_${limit}_reply.png rm -f no_${limit}_reply.ps done # no_* echo "%!PS-Adobe-3.0 %%LanguageLevel: 2 %% %%Title: stroke %%For: Diether Knof %%CreationDate: 15-12-2006 %%Creator: Diether Knof %% %%Orientation: Portrait %%BoundingBox: 0 0 $(($scale * $width)) $(($scale * $width / 2)) %%Pages: 1 %% %%EndComments %Groesse ~ 842x595 $scale dup scale /breite $(($width)) def /hoehe $(($width / 2)) def %%Page: 1 1 gsave /DeviceRGB setcolorspace 1 0 0 setcolor newpath 2 10 moveto breite 2 sub hoehe 10 sub lineto closepath 10 setlinewidth stroke grestore showpage quit"\ > stroke.ps convert -colors 2 -transparent white stroke.ps stroke.png mogrify -transparent white stroke.png mogrify -resize ${width}x$(($width / 2)) stroke.png for limit in 120 90 60 30 0; do composite stroke.png no_${limit}_reply.png no_${limit}.png done rm -f stroke.ps stroke.png # scale all icons for f in re.png contra.png solo*.png marriage*.png genscher.png poverty*.png thrown_nines.png thrown_kings.png thrown_nines_and_kings.png fox_highest_trump.png swines.*.png hyperswines.*.png swines-hyperswines.*.png no_*.png do #convert -scale $(( $width * $scaling / 100 ))x$(( $height * $scaling / 100 )) \ convert -resize $scalingx$scaling% \ $f t.png \ && mv t.png $f done rm ${FILE_PIXEL} rm ${FILE_OVERLAP} # sharpen and minimize for f in *.png; do \ convert -sharpen 1 $f t.png \ && mv t.png $f done