summaryrefslogtreecommitdiffstats
path: root/multimedia/imagemagick/test.sh
blob: 82da005f18242d52373aa405aef2310f7efbebe3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/sh

# $2 is PKG_VERSION which uses dots: e.g. "7.1.2.21"
# convert --version reports with a dash: "7.1.2-21"
# Build the dash form for grep.
_imver=$(echo "$2" | sed 's/\.\([0-9]*\)$/-\1/')

case "$1" in
imagemagick)
	# Version check; convert and magick are both installed
	convert --version | grep -F "ImageMagick"
	convert --version | grep -F "$_imver"

	# Create a test image via the ImageMagick convert command
	convert -size 32x32 xc:white /tmp/im-white.png
	[ -f /tmp/im-white.png ] || { echo "FAIL: PNG creation"; exit 1; }

	# Identify: confirm format and geometry
	identify /tmp/im-white.png | grep -E "PNG.*32x32"

	# Convert to JPEG
	convert /tmp/im-white.png /tmp/im-white.jpg
	identify /tmp/im-white.jpg | grep "JPEG"

	# Resize: exact geometry
	convert -size 64x64 xc:blue -resize 16x16! /tmp/im-small.png
	identify /tmp/im-small.png | grep -E "PNG.*16x16"

	# Color sampling: create a known red pixel, read it back
	convert -size 1x1 xc:'rgb(255,0,0)' /tmp/im-red.png
	# fx/info: query exercises the pixel engine
	convert /tmp/im-red.png -format '%[fx:p{0,0}.r*255]' info: | grep -E "^255$"

	# BMP round-trip (exercises a different codec path)
	convert /tmp/im-white.png /tmp/im-white.bmp
	identify /tmp/im-white.bmp | grep "BMP"

	# Grayscale conversion
	convert /tmp/im-red.png -colorspace Gray /tmp/im-gray.png
	identify -verbose /tmp/im-gray.png | grep -i "gray"

	# Composite two images (exercises MagickCore composite engine)
	convert /tmp/im-white.png /tmp/im-red.png \
		-gravity Center -composite /tmp/im-comp.png
	identify /tmp/im-comp.png | grep "PNG"

	rm -f /tmp/im-white.png /tmp/im-white.jpg /tmp/im-small.png \
	      /tmp/im-red.png /tmp/im-white.bmp /tmp/im-gray.png /tmp/im-comp.png
	;;
esac