1#!/bin/sh 2# -*- shell-script -*- 3# Copyright (C) 2004-2012 GraphicsMagick Group 4# Test MSL Composite 5. ./common.shi 6. ${top_srcdir}/utilities/tests/common.sh 7 8#Author: Max Hohenegger 9#Last change: 2008-10-01 10#Module: conjure, MSL 11#Description: Test whether compositing images over a background image using 12# gravity delivers the same result using conjure (MSL) and convert 13 14# Number of tests we plan to execute 15test_plan_fn 2 16 17COMPOSITE_CMD="${GM} composite" 18CONJURE_CMD="${GM} conjure -debug exception" 19CONVERT_CMD="${GM} convert" 20COMPARE_CMD="${GM} compare" 21DISPLAY_CMD="${GM} display" 22 23FORMAT="_out.pnm" 24 25BLANK="comp_blank$FORMAT" 26CENTER="comp_Center$FORMAT" 27NORTH="comp_North$FORMAT" 28NORTHEAST="comp_NorthEast$FORMAT" 29EAST="comp_East$FORMAT" 30SOUTHEAST="comp_SouthEast$FORMAT" 31SOUTH="comp_South$FORMAT" 32SOUTHWEST="comp_SouthWest$FORMAT" 33WEST="comp_West$FORMAT" 34NORTHWEST="comp_NorthWest$FORMAT" 35 36RESULT="comp_result_out$FORMAT" 37CONJURE_RESULT="comp_conjure_result_out$FORMAT" 38COMPARED="comp_compared$FORMAT" 39 40draw_text () 41{ 42 TEXT=$1 43 TARGET=$2 44 45 DRAWCMDFILE=msl_composite_draw_out.txt 46# TEMPFILE=draw_text_tmp.svg 47# cat <<EOF >$TEMPFILE 48#<?xml version="1.0" encoding="utf-8" ?> 49#<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 50# "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 51#<svg width="120" height="100" xmlns="http://www.w3.org/2000/svg"> 52# <style type="text/css"><![CDATA[ text {font-size:20px; text-anchor:middle;} ]]></style> 53# <text x="50" y="50">$TEXT</text> 54#</svg> 55#EOF 56 57# $CONVERT_CMD $TEMPFILE $TARGET || exit 1 58 59 echo "font-size 20 font '${GENERIC_TTF}' gravity center text 0,0 '$TEXT'" > ${DRAWCMDFILE} 60 $CONVERT_CMD -size 100x100 xc:white -draw @${DRAWCMDFILE} $TARGET 61 rm -f ${DRAWCMDFILE} 62# rm -f $TEMPFILE 63} 64 65draw_blank () 66{ 67 TARGET=$1 68 69# TEMPFILE=draw_blank_tmp.svg 70# cat <<EOF >$TEMPFILE 71#<?xml version="1.0" encoding="utf-8" ?> 72#<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 73# "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 74#<svg width="500" height="500" 75# xmlns="http://www.w3.org/2000/svg"> 76#</svg> 77#EOF 78 79# $CONVERT_CMD $TEMPFILE $TARGET || exit 2 80 $CONVERT_CMD -size 500x500 xc:white $TARGET 81# rm -f $TEMPFILE 82} 83 84########################## PREPARE TEST OBJECTS ########################### 85draw_blank $BLANK 86draw_text "Center" $CENTER 87draw_text "North" $NORTH 88draw_text "NorthEast" $NORTHEAST 89draw_text "East" $EAST 90draw_text "SouthEast" $SOUTHEAST 91draw_text "South" $SOUTH 92draw_text "SouthWest" $SOUTHWEST 93draw_text "West" $WEST 94draw_text "NorthWest" $NORTHWEST 95 96########################## CREATE TEST BASE ########################### 97cp $BLANK $RESULT 98$COMPOSITE_CMD $CENTER $RESULT -gravity Center $RESULT || exit 3 99$COMPOSITE_CMD $NORTH $RESULT -gravity North $RESULT || exit 3 100$COMPOSITE_CMD $NORTHEAST $RESULT -gravity NorthEast $RESULT || exit 3 101$COMPOSITE_CMD $EAST $RESULT -gravity East $RESULT || exit 3 102$COMPOSITE_CMD $SOUTHEAST $RESULT -gravity SouthEast $RESULT || exit 3 103$COMPOSITE_CMD $SOUTH $RESULT -gravity South $RESULT || exit 3 104$COMPOSITE_CMD $SOUTHWEST $RESULT -gravity SouthWest $RESULT || exit 3 105$COMPOSITE_CMD $WEST $RESULT -gravity West $RESULT || exit 3 106$COMPOSITE_CMD $NORTHWEST $RESULT -gravity NorthWest $RESULT || exit 3 107 108########################## CREATE TEST OBJECT ########################### 109TEMPFILE=composite_tmp.msl 110cat <<EOF >$TEMPFILE 111<?xml version="1.0" encoding="utf-8" ?> 112<group> 113 <image id="1"><read filename="$CENTER"/></image> 114 <image id="2"><read filename="$NORTH"/></image> 115 <image id="3"><read filename="$NORTHEAST"/></image> 116 <image id="4"><read filename="$EAST"/></image> 117 <image id="5"><read filename="$SOUTHEAST"/></image> 118 <image id="6"><read filename="$SOUTH"/></image> 119 <image id="7"><read filename="$SOUTHWEST"/></image> 120 <image id="8"><read filename="$WEST"/></image> 121 <image id="9"><read filename="$NORTHWEST"/></image> 122 <image> 123 <read filename="$BLANK"/> 124 <composite image="1" gravity="Center"/> 125 <composite image="2" gravity="North"/> 126 <composite image="3" gravity="NorthEast"/> 127 <composite image="4" gravity="East"/> 128 <composite image="5" gravity="SouthEast"/> 129 <composite image="6" gravity="South"/> 130 <composite image="7" gravity="SouthWest"/> 131 <composite image="8" gravity="West"/> 132 <composite image="9" gravity="NorthWest"/> 133 </image> 134 <write filename="$CONJURE_RESULT"/> 135</group> 136EOF 137test_command_fn 'Conjure' -F 'XML' $CONJURE_CMD $TEMPFILE 138 139################### COMPARE TEST OBJECT TO TESTBASE ######################### 140 141#gm display $RESULT 142#gm display $CONJURE_RESULT 143 144cmp $RESULT $CONJURE_RESULT 145status=$? 146test_command_fn 'Verify Result' test $status 147if test $status -eq 0 148then 149 rm -f $TEMPFILE $BLANK $CENTER $NORTH $NORTHEAST $EAST $SOUTHEAST $SOUTH \ 150 $SOUTHWEST $WEST $NORTHWEST $RESULT $CONJURE_RESULT 151fi 152#diff --report-identical-files $RESULT $CONJURE_RESULT 153#$COMPARE_CMD $RESULT $CONJURE_RESULT $COMPARED || exit 5 154#$DISPLAY_CMD $COMPARED || exit 6 155: 156