Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Apache
: 172.26.7.228 | : 3.147.67.237
Cant Read [ /etc/named.conf ]
5.6.40-24+ubuntu18.04.1+deb.sury.org+1
www-data
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
ubuntu /
ImageMagick-7.0.10-22 /
coders /
[ HOME SHELL ]
Name
Size
Permission
Action
.deps
[ DIR ]
drwxrwxr-x
.libs
[ DIR ]
drwxrwxr-x
.dirstamp
0
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
69.73
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
64.81
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
391
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
44.66
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
70.05
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
130.98
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
196.78
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
394
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
62.9
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
71.68
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
394
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
77.66
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
131.91
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
60.09
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
51.51
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
141.7
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
66.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
109.82
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
379.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
299.74
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
58.5
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
126.09
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
83.34
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
70.91
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
40.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
202.08
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
69.74
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
83.62
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
65.33
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
110.5
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
164.71
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
397
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
59.64
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
107.2
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
52.96
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
88.38
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
400
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
67.28
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
65.13
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
65.77
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
124.73
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
48.86
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
391
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
59.84
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
79.2
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
78.63
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
62.9
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
266.76
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
186.59
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
68.63
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
55.29
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
391
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
261.34
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
74.67
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
55.47
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
192.89
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
49.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
172.66
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
238.18
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
60.13
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
141.13
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
80.55
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
48.96
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
610.49
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
68.95
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
68.45
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
52.38
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
61.54
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
112.6
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
104.45
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
394
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
60.01
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
163.79
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
102.8
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
154.4
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
99.59
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
286.34
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
65.63
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
66.25
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
175.23
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
59.86
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
391
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
72.11
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
806.28
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
364.2
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
379
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
220.22
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
122.21
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
155.45
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
507.64
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
59.84
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
82.99
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
146.39
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
60.14
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
67.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
104.75
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
53.5
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
403
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
45.49
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
63.51
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
65.01
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
108.77
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
109.47
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
394
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
58.77
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
132.48
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
414.88
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
134.98
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
400
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
49.44
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
312.59
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
49.22
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
68.73
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
94.99
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
72.32
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
115.14
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
63.71
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
57.63
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
67.1
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
71.88
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
60.03
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
155.09
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
114.54
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
64.59
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
216.59
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
150.01
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
376
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
42.33
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
72.34
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
379
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
50.73
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
123.34
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
115.25
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
67.35
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
385
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
40.02
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
127.27
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
388
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
126.41
KB
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
382
B
-rw-rw-r--
MagickCore_libMagickCore_7_Q16...
102.9
KB
-rw-rw-r--
Makefile.am
41.13
KB
-rw-rw-r--
aai.c
15.23
KB
-rw-rw-r--
aai.h
867
B
-rw-rw-r--
art.c
13.45
KB
-rw-rw-r--
art.h
867
B
-rw-rw-r--
ashlar.c
7.73
KB
-rw-rw-r--
ashlar.h
876
B
-rw-rw-r--
avs.c
15.16
KB
-rw-rw-r--
avs.h
867
B
-rw-rw-r--
bgr.c
52.05
KB
-rw-rw-r--
bgr.h
938
B
-rw-rw-r--
bmp.c
84.94
KB
-rw-rw-r--
bmp.h
1.14
KB
-rw-rw-r--
braille.c
13.36
KB
-rw-rw-r--
braille.h
1.06
KB
-rw-rw-r--
bytebuffer-private.h
2.83
KB
-rw-rw-r--
cals.c
18.88
KB
-rw-rw-r--
cals.h
1.07
KB
-rw-rw-r--
caption.c
15.15
KB
-rw-rw-r--
caption.h
878
B
-rw-rw-r--
cin.c
43.46
KB
-rw-rw-r--
cin.h
918
B
-rw-rw-r--
cip.c
11.75
KB
-rw-rw-r--
cip.h
866
B
-rw-rw-r--
clip.c
10.17
KB
-rw-rw-r--
clip.h
869
B
-rw-rw-r--
clipboard.c
13.8
KB
-rw-rw-r--
clipboard.h
884
B
-rw-rw-r--
cmyk.c
57.92
KB
-rw-rw-r--
cmyk.h
907
B
-rw-rw-r--
coders-list.h
4.33
KB
-rw-rw-r--
coders-private.h
1.02
KB
-rw-rw-r--
coders.h
4.87
KB
-rw-rw-r--
cube.c
13.96
KB
-rw-rw-r--
cube.h
870
B
-rw-rw-r--
cut.c
25.71
KB
-rw-rw-r--
cut.h
866
B
-rw-rw-r--
dcm.c
189.02
KB
-rw-rw-r--
dcm.h
908
B
-rw-rw-r--
dds.c
93.72
KB
-rw-rw-r--
dds.h
978
B
-rw-rw-r--
debug.c
10.65
KB
-rw-rw-r--
debug.h
872
B
-rw-rw-r--
dib.c
46.25
KB
-rw-rw-r--
dib.h
948
B
-rw-rw-r--
djvu.c
31.58
KB
-rw-rw-r--
djvu.h
914
B
-rw-rw-r--
dng.c
29.29
KB
-rw-rw-r--
dng.h
2.03
KB
-rw-rw-r--
dot.c
9.79
KB
-rw-rw-r--
dot.h
943
B
-rw-rw-r--
dps.c
20.22
KB
-rw-rw-r--
dps.h
866
B
-rw-rw-r--
dpx.c
69.89
KB
-rw-rw-r--
dpx.h
946
B
-rw-rw-r--
emf.c
27.13
KB
-rw-rw-r--
emf.h
1.05
KB
-rw-rw-r--
ept.c
19.91
KB
-rw-rw-r--
ept.h
990
B
-rw-rw-r--
exr.c
22.79
KB
-rw-rw-r--
exr.h
918
B
-rw-rw-r--
fax.c
15.29
KB
-rw-rw-r--
fax.h
974
B
-rw-rw-r--
fits.c
29.49
KB
-rw-rw-r--
fits.h
988
B
-rw-rw-r--
flif.c
18.7
KB
-rw-rw-r--
flif.h
910
B
-rw-rw-r--
fpx.c
35.87
KB
-rw-rw-r--
fpx.h
866
B
-rw-rw-r--
ghostscript-private.h
7.34
KB
-rw-rw-r--
gif.c
62.71
KB
-rw-rw-r--
gif.h
943
B
-rw-rw-r--
gradient.c
12.22
KB
-rw-rw-r--
gradient.h
933
B
-rw-rw-r--
gray.c
37.77
KB
-rw-rw-r--
gray.h
907
B
-rw-rw-r--
hald.c
9.48
KB
-rw-rw-r--
hald.h
869
B
-rw-rw-r--
hdr.c
27.92
KB
-rw-rw-r--
hdr.h
954
B
-rw-rw-r--
heic.c
32.34
KB
-rw-rw-r--
heic.h
1.02
KB
-rw-rw-r--
histogram.c
14.41
KB
-rw-rw-r--
histogram.h
884
B
-rw-rw-r--
hrz.c
12.88
KB
-rw-rw-r--
hrz.h
866
B
-rw-rw-r--
html.c
17.95
KB
-rw-rw-r--
html.h
943
B
-rw-rw-r--
icon.c
48.2
KB
-rw-rw-r--
icon.h
941
B
-rw-rw-r--
info.c
8.77
KB
-rw-rw-r--
info.h
869
B
-rw-rw-r--
inline.c
13.23
KB
-rw-rw-r--
inline.h
914
B
-rw-rw-r--
ipl.c
23.86
KB
-rw-rw-r--
ipl.h
906
B
-rw-rw-r--
jbig.c
18.22
KB
-rw-rw-r--
jbig.h
941
B
-rw-rw-r--
jnx.c
13.8
KB
-rw-rw-r--
jnx.h
866
B
-rw-rw-r--
jp2.c
37.58
KB
-rw-rw-r--
jp2.h
1.2
KB
-rw-rw-r--
jpeg.c
97.27
KB
-rw-rw-r--
jpeg.h
1.04
KB
-rw-rw-r--
json.c
59.77
KB
-rw-rw-r--
json.h
869
B
-rw-rw-r--
jxl.c
11.2
KB
-rw-rw-r--
jxl.h
1.02
KB
-rw-rw-r--
label.c
13.23
KB
-rw-rw-r--
label.h
872
B
-rw-rw-r--
mac.c
11.14
KB
-rw-rw-r--
mac.h
866
B
-rw-rw-r--
magick.c
974.07
KB
-rw-rw-r--
magick.h
1.09
KB
-rw-rw-r--
map.c
16.56
KB
-rw-rw-r--
map.h
866
B
-rw-rw-r--
mask.c
11.61
KB
-rw-rw-r--
mask.h
869
B
-rw-rw-r--
mat.c
55.53
KB
-rw-rw-r--
mat.h
922
B
-rw-rw-r--
matte.c
8.94
KB
-rw-rw-r--
matte.h
872
B
-rw-rw-r--
meta.c
68.08
KB
-rw-rw-r--
meta.h
1.68
KB
-rw-rw-r--
miff.c
91.19
KB
-rw-rw-r--
miff.h
971
B
-rw-rw-r--
mono.c
12.88
KB
-rw-rw-r--
mono.h
869
B
-rw-rw-r--
mpc.c
55.54
KB
-rw-rw-r--
mpc.h
953
B
-rw-rw-r--
mpeg.c
23.5
KB
-rw-rw-r--
mpeg.h
1.33
KB
-rw-rw-r--
mpr.c
9.71
KB
-rw-rw-r--
mpr.h
902
B
-rw-rw-r--
msl.c
281.74
KB
-rw-rw-r--
msl.h
866
B
-rw-rw-r--
mtv.c
14.91
KB
-rw-rw-r--
mtv.h
866
B
-rw-rw-r--
mvg.c
13.94
KB
-rw-rw-r--
mvg.h
866
B
-rw-rw-r--
null.c
10.31
KB
-rw-rw-r--
null.h
869
B
-rw-rw-r--
otb.c
13.67
KB
-rw-rw-r--
otb.h
866
B
-rw-rw-r--
palm.c
39.51
KB
-rw-rw-r--
palm.h
869
B
-rw-rw-r--
pango.c
19
KB
-rw-rw-r--
pango.h
872
B
-rw-rw-r--
pattern.c
40.73
KB
-rw-rw-r--
pattern.h
878
B
-rw-rw-r--
pcd.c
37.94
KB
-rw-rw-r--
pcd.h
945
B
-rw-rw-r--
pcl.c
31.4
KB
-rw-rw-r--
pcl.h
912
B
-rw-rw-r--
pcx.c
41.28
KB
-rw-rw-r--
pcx.h
1.02
KB
-rw-rw-r--
pdb.c
32.93
KB
-rw-rw-r--
pdb.h
911
B
-rw-rw-r--
pdf.c
103.22
KB
-rw-rw-r--
pdf.h
1.03
KB
-rw-rw-r--
pes.c
22.4
KB
-rw-rw-r--
pes.h
906
B
-rw-rw-r--
pgx.c
14.93
KB
-rw-rw-r--
pgx.h
1004
B
-rw-rw-r--
pict.c
75.03
KB
-rw-rw-r--
pict.h
905
B
-rw-rw-r--
pix.c
11.78
KB
-rw-rw-r--
pix.h
866
B
-rw-rw-r--
plasma.c
11.01
KB
-rw-rw-r--
plasma.h
917
B
-rw-rw-r--
png.c
444.96
KB
-rw-rw-r--
png.h
1.29
KB
-rw-rw-r--
pnm.c
86.17
KB
-rw-rw-r--
pnm.h
1.35
KB
-rw-rw-r--
ps.c
74.22
KB
-rw-rw-r--
ps.h
1.1
KB
-rw-rw-r--
ps2.c
41.27
KB
-rw-rw-r--
ps2.h
902
B
-rw-rw-r--
ps3.c
53.38
KB
-rw-rw-r--
ps3.h
902
B
-rw-rw-r--
psd-private.h
1.28
KB
-rw-rw-r--
psd.c
114.67
KB
-rw-rw-r--
psd.h
981
B
-rw-rw-r--
pwp.c
12.87
KB
-rw-rw-r--
pwp.h
907
B
-rw-rw-r--
raw.c
20.72
KB
-rw-rw-r--
raw.h
1.14
KB
-rw-rw-r--
rgb.c
59.63
KB
-rw-rw-r--
rgb.h
977
B
-rw-rw-r--
rgf.c
13.49
KB
-rw-rw-r--
rgf.h
866
B
-rw-rw-r--
rla.c
16.69
KB
-rw-rw-r--
rla.h
866
B
-rw-rw-r--
rle.c
27.75
KB
-rw-rw-r--
rle.h
910
B
-rw-rw-r--
scr.c
10.87
KB
-rw-rw-r--
scr.h
866
B
-rw-rw-r--
screenshot.c
11.24
KB
-rw-rw-r--
screenshot.h
887
B
-rw-rw-r--
sct.c
13.14
KB
-rw-rw-r--
sct.h
904
B
-rw-rw-r--
sfw.c
17.26
KB
-rw-rw-r--
sfw.h
907
B
-rw-rw-r--
sgi.c
40.46
KB
-rw-rw-r--
sgi.h
910
B
-rw-rw-r--
sixel.c
44.92
KB
-rw-rw-r--
sixel.h
909
B
-rw-rw-r--
stegano.c
10.79
KB
-rw-rw-r--
stegano.h
878
B
-rw-rw-r--
sun.c
36.71
KB
-rw-rw-r--
sun.h
953
B
-rw-rw-r--
svg.c
165.72
KB
-rw-rw-r--
svg.h
1.07
KB
-rw-rw-r--
tga.c
34.39
KB
-rw-rw-r--
tga.h
971
B
-rw-rw-r--
thumbnail.c
9.18
KB
-rw-rw-r--
thumbnail.h
884
B
-rw-rw-r--
tiff.c
136.04
KB
-rw-rw-r--
tiff.h
1.24
KB
-rw-rw-r--
tile.c
8.74
KB
-rw-rw-r--
tile.h
869
B
-rw-rw-r--
tim.c
17.1
KB
-rw-rw-r--
tim.h
866
B
-rw-rw-r--
tim2.c
27.08
KB
-rw-rw-r--
tim2.h
945
B
-rw-rw-r--
ttf.c
16.16
KB
-rw-rw-r--
ttf.h
1.18
KB
-rw-rw-r--
txt.c
29.88
KB
-rw-rw-r--
txt.h
1.02
KB
-rw-rw-r--
uil.c
13.55
KB
-rw-rw-r--
uil.h
866
B
-rw-rw-r--
url.c
13.47
KB
-rw-rw-r--
url.h
1010
B
-rw-rw-r--
uyvy.c
13.95
KB
-rw-rw-r--
uyvy.h
905
B
-rw-rw-r--
vicar.c
17.53
KB
-rw-rw-r--
vicar.h
1013
B
-rw-rw-r--
vid.c
13.52
KB
-rw-rw-r--
vid.h
866
B
-rw-rw-r--
viff.c
45.5
KB
-rw-rw-r--
viff.h
949
B
-rw-rw-r--
vips.c
24.88
KB
-rw-rw-r--
vips.h
975
B
-rw-rw-r--
wbmp.c
14.2
KB
-rw-rw-r--
wbmp.h
869
B
-rw-rw-r--
webp.c
36.37
KB
-rw-rw-r--
webp.h
910
B
-rw-rw-r--
wmf.c
87.53
KB
-rw-rw-r--
wmf.h
866
B
-rw-rw-r--
wpg.c
54.39
KB
-rw-rw-r--
wpg.h
909
B
-rw-rw-r--
x.c
8.67
KB
-rw-rw-r--
x.h
860
B
-rw-rw-r--
xbm.c
20.42
KB
-rw-rw-r--
xbm.h
909
B
-rw-rw-r--
xc.c
9.19
KB
-rw-rw-r--
xc.h
900
B
-rw-rw-r--
xcf.c
50.23
KB
-rw-rw-r--
xcf.h
911
B
-rw-rw-r--
xpm.c
36.61
KB
-rw-rw-r--
xpm.h
980
B
-rw-rw-r--
xps.c
14.83
KB
-rw-rw-r--
xps.h
866
B
-rw-rw-r--
xtrn.c
13.23
KB
-rw-rw-r--
xtrn.h
911
B
-rw-rw-r--
xwd.c
33.22
KB
-rw-rw-r--
xwd.h
866
B
-rw-rw-r--
ycbcr.c
50.71
KB
-rw-rw-r--
ycbcr.h
912
B
-rw-rw-r--
yuv.c
31.05
KB
-rw-rw-r--
yuv.h
866
B
-rw-rw-r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : fpx.c
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % FFFFF PPPP X X % % F P P X X % % FFF PPPP X % % F P X X % % F P X X % % % % % % Read/Write FlashPIX Image Format % % % % Software Design % % Cristy % % July 1992 % % % % % % Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % % You may not use this file except in compliance with the License. You may % % obtain a copy of the License at % % % % https://imagemagick.org/script/license.php % % % % Unless required by applicable law or agreed to in writing, software % % distributed under the License is distributed on an "AS IS" BASIS, % % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % % See the License for the specific language governing permissions and % % limitations under the License. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % */ /* Include declarations. */ #include "MagickCore/studio.h" #include "MagickCore/attribute.h" #include "MagickCore/property.h" #include "MagickCore/blob.h" #include "MagickCore/blob-private.h" #include "MagickCore/cache.h" #include "MagickCore/color.h" #include "MagickCore/color-private.h" #include "MagickCore/colormap.h" #include "MagickCore/colorspace.h" #include "MagickCore/colorspace-private.h" #include "MagickCore/constitute.h" #include "MagickCore/exception.h" #include "MagickCore/exception-private.h" #include "MagickCore/geometry.h" #include "MagickCore/image.h" #include "MagickCore/image-private.h" #include "MagickCore/list.h" #include "MagickCore/magick.h" #include "MagickCore/memory_.h" #include "MagickCore/monitor.h" #include "MagickCore/monitor-private.h" #include "MagickCore/option.h" #include "MagickCore/pixel.h" #include "MagickCore/pixel-accessor.h" #include "MagickCore/property.h" #include "MagickCore/quantum-private.h" #include "MagickCore/static.h" #include "MagickCore/string_.h" #include "MagickCore/module.h" #if defined(MAGICKCORE_FPX_DELEGATE) #if !defined(vms) && !defined(macintosh) && !defined(MAGICKCORE_WINDOWS_SUPPORT) #include <fpxlib.h> #else #include "Fpxlib.h" #endif #endif #if defined(MAGICKCORE_FPX_DELEGATE) /* Forward declarations. */ static MagickBooleanType WriteFPXImage(const ImageInfo *,Image *,ExceptionInfo *); #endif #if defined(MAGICKCORE_FPX_DELEGATE) /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % R e a d F P X I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % ReadFPXImage() reads a FlashPix image file and returns it. It % allocates the memory necessary for the new Image structure and returns a % pointer to the new image. This method was contributed by BillR@corbis.com. % % The format of the ReadFPXImage method is: % % Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) % % A description of each parameter follows: % % o image_info: the image info. % % o exception: return any errors or warnings in this structure. % */ static Image *ReadFPXImage(const ImageInfo *image_info,ExceptionInfo *exception) { const char *option; FPXColorspace colorspace; FPXImageComponentDesc *alpha_component, *blue_component, *green_component, *red_component; FPXImageDesc fpx_info; FPXImageHandle *flashpix; FPXStatus fpx_status; FPXSummaryInformation summary_info; Image *image; MagickBooleanType status; Quantum index; register ssize_t i, x; register Quantum *q; register unsigned char *a, *b, *g, *r; size_t memory_limit; ssize_t y; unsigned char *pixels; unsigned int height, tile_width, tile_height, width; size_t scene; /* Open image. */ assert(image_info != (const ImageInfo *) NULL); assert(image_info->signature == MagickCoreSignature); if (image_info->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image_info->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickCoreSignature); image=AcquireImage(image_info,exception); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { image=DestroyImageList(image); return((Image *) NULL); } (void) CloseBlob(image); /* Initialize FPX toolkit. */ fpx_status=FPX_InitSystem(); if (fpx_status != FPX_OK) ThrowReaderException(CoderError,"UnableToInitializeFPXLibrary"); memory_limit=20000000; fpx_status=FPX_SetToolkitMemoryLimit(&memory_limit); if (fpx_status != FPX_OK) { FPX_ClearSystem(); ThrowReaderException(CoderError,"UnableToInitializeFPXLibrary"); } tile_width=64; tile_height=64; flashpix=(FPXImageHandle *) NULL; { #if defined(macintosh) FSSpec fsspec; FilenameToFSSpec(image->filename,&fsspec); fpx_status=FPX_OpenImageByFilename((const FSSpec &) fsspec,(char *) NULL, #else fpx_status=FPX_OpenImageByFilename(image->filename,(char *) NULL, #endif &width,&height,&tile_width,&tile_height,&colorspace,&flashpix); } if (fpx_status == FPX_LOW_MEMORY_ERROR) { FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } if (fpx_status != FPX_OK) { FPX_ClearSystem(); ThrowFileException(exception,FileOpenError,"UnableToOpenFile", image->filename); image=DestroyImageList(image); return((Image *) NULL); } if (colorspace.numberOfComponents == 0) { FPX_ClearSystem(); ThrowReaderException(CorruptImageError,"ImageTypeNotSupported"); } option=GetImageOption(image_info,"fpx:view"); if (option == (const char *) NULL) { float aspect_ratio; /* Get the aspect ratio. */ aspect_ratio=(float) width/height; fpx_status=FPX_GetImageResultAspectRatio(flashpix,&aspect_ratio); if (fpx_status != FPX_OK) ThrowReaderException(DelegateError,"UnableToReadAspectRatio"); if (width != (size_t) floor((aspect_ratio*height)+0.5)) Swap(width,height); } fpx_status=FPX_GetSummaryInformation(flashpix,&summary_info); if (fpx_status != FPX_OK) { FPX_ClearSystem(); ThrowReaderException(DelegateError,"UnableToReadSummaryInfo"); } if (summary_info.title_valid) if ((summary_info.title.length != 0) && (summary_info.title.ptr != (unsigned char *) NULL)) { char *label; /* Note image label. */ label=(char *) NULL; if (~summary_info.title.length >= (MagickPathExtent-1)) label=(char *) AcquireQuantumMemory(summary_info.title.length+ MagickPathExtent,sizeof(*label)); if (label == (char *) NULL) { FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } (void) CopyMagickString(label,(char *) summary_info.title.ptr, summary_info.title.length+1); (void) SetImageProperty(image,"label",label,exception); label=DestroyString(label); } if (summary_info.comments_valid) if ((summary_info.comments.length != 0) && (summary_info.comments.ptr != (unsigned char *) NULL)) { char *comments; /* Note image comment. */ comments=(char *) NULL; if (~summary_info.comments.length >= (MagickPathExtent-1)) comments=(char *) AcquireQuantumMemory(summary_info.comments.length+ MagickPathExtent,sizeof(*comments)); if (comments == (char *) NULL) { FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } (void) CopyMagickString(comments,(char *) summary_info.comments.ptr, summary_info.comments.length+1); (void) SetImageProperty(image,"comment",comments,exception); comments=DestroyString(comments); } /* Determine resolution by scene specification. */ for (i=1; ; i++) if (((width >> i) < tile_width) || ((height >> i) < tile_height)) break; scene=i; if (image_info->number_scenes != 0) while (scene > image_info->scene) { width>>=1; height>>=1; scene--; } if (image_info->size != (char *) NULL) while ((width > image->columns) || (height > image->rows)) { width>>=1; height>>=1; scene--; } image->depth=8; image->columns=width; image->rows=height; if ((colorspace.numberOfComponents % 2) == 0) image->alpha_trait=BlendPixelTrait; if (colorspace.numberOfComponents == 1) { /* Create linear colormap. */ if (AcquireImageColormap(image,MaxColormapSize,exception) == MagickFalse) { FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } } if (image_info->ping != MagickFalse) { (void) FPX_CloseImage(flashpix); FPX_ClearSystem(); return(GetFirstImageInList(image)); } status=SetImageExtent(image,image->columns,image->rows,exception); if (status == MagickFalse) return(DestroyImageList(image)); /* Allocate memory for the image and pixel buffer. */ pixels=(unsigned char *) AcquireQuantumMemory(image->columns,(tile_height+ 1UL)*colorspace.numberOfComponents*sizeof(*pixels)); if (pixels == (unsigned char *) NULL) { FPX_ClearSystem(); (void) FPX_CloseImage(flashpix); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } /* Initialize FlashPix image description. */ fpx_info.numberOfComponents=colorspace.numberOfComponents; for (i=0; i < 4; i++) { fpx_info.components[i].myColorType.myDataType=DATA_TYPE_UNSIGNED_BYTE; fpx_info.components[i].horzSubSampFactor=1; fpx_info.components[i].vertSubSampFactor=1; fpx_info.components[i].columnStride=fpx_info.numberOfComponents; fpx_info.components[i].lineStride=image->columns* fpx_info.components[i].columnStride; fpx_info.components[i].theData=pixels+i; } fpx_info.components[0].myColorType.myColor=fpx_info.numberOfComponents > 2 ? NIFRGB_R : MONOCHROME; red_component=(&fpx_info.components[0]); fpx_info.components[1].myColorType.myColor=fpx_info.numberOfComponents > 2 ? NIFRGB_G : ALPHA; green_component=(&fpx_info.components[1]); fpx_info.components[2].myColorType.myColor=NIFRGB_B; blue_component=(&fpx_info.components[2]); fpx_info.components[3].myColorType.myColor=ALPHA; alpha_component=(&fpx_info.components[fpx_info.numberOfComponents-1]); FPX_SetResampleMethod(FPX_LINEAR_INTERPOLATION); /* Initialize image pixels. */ for (y=0; y < (ssize_t) image->rows; y++) { q=QueueAuthenticPixels(image,0,y,image->columns,1,exception); if (q == (Quantum *) NULL) break; if ((y % tile_height) == 0) { /* Read FPX image tile (with or without viewing affine).. */ if (option != (const char *) NULL) fpx_status=FPX_ReadImageRectangle(flashpix,0,y,image->columns,y+ tile_height-1,scene,&fpx_info); else fpx_status=FPX_ReadImageTransformRectangle(flashpix,0.0F, (float) y/image->rows,(float) image->columns/image->rows, (float) (y+tile_height-1)/image->rows,(ssize_t) image->columns, (ssize_t) tile_height,&fpx_info); if (fpx_status == FPX_LOW_MEMORY_ERROR) { pixels=(unsigned char *) RelinquishMagickMemory(pixels); (void) FPX_CloseImage(flashpix); FPX_ClearSystem(); ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); } } /* Transfer a FPX pixels. */ r=red_component->theData+(y % tile_height)*red_component->lineStride; g=green_component->theData+(y % tile_height)*green_component->lineStride; b=blue_component->theData+(y % tile_height)*blue_component->lineStride; a=alpha_component->theData+(y % tile_height)*alpha_component->lineStride; for (x=0; x < (ssize_t) image->columns; x++) { if (fpx_info.numberOfComponents > 2) { SetPixelRed(image,ScaleCharToQuantum(*r),q); SetPixelGreen(image,ScaleCharToQuantum(*g),q); SetPixelBlue(image,ScaleCharToQuantum(*b),q); } else { index=ScaleCharToQuantum(*r); SetPixelBlack(image,index,q); SetPixelRed(image,index,q); SetPixelGreen(image,index,q); SetPixelBlue(image,index,q); } SetPixelAlpha(image,OpaqueAlpha,q); if (image->alpha_trait != UndefinedPixelTrait) SetPixelAlpha(image,ScaleCharToQuantum(*a),q); q+=GetPixelChannels(image); r+=red_component->columnStride; g+=green_component->columnStride; b+=blue_component->columnStride; a+=alpha_component->columnStride; } if (SyncAuthenticPixels(image,exception) == MagickFalse) break; status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, image->rows); if (status == MagickFalse) break; } pixels=(unsigned char *) RelinquishMagickMemory(pixels); (void) FPX_CloseImage(flashpix); FPX_ClearSystem(); return(GetFirstImageInList(image)); } #endif /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % R e g i s t e r F P X I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % RegisterFPXImage() adds attributes for the FPX image format to % the list of supported formats. The attributes include the image format % tag, a method to read and/or write the format, whether the format % supports the saving of more than one frame to the same file or blob, % whether the format supports native in-memory I/O, and a brief % description of the format. % % The format of the RegisterFPXImage method is: % % size_t RegisterFPXImage(void) % */ ModuleExport size_t RegisterFPXImage(void) { MagickInfo *entry; entry=AcquireMagickInfo("FPX","FPX","FlashPix Format"); #if defined(MAGICKCORE_FPX_DELEGATE) entry->decoder=(DecodeImageHandler *) ReadFPXImage; entry->encoder=(EncodeImageHandler *) WriteFPXImage; #endif entry->flags^=CoderAdjoinFlag; entry->flags^=CoderBlobSupportFlag; (void) RegisterMagickInfo(entry); return(MagickImageCoderSignature); } /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % U n r e g i s t e r F P X I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % UnregisterFPXImage() removes format registrations made by the % FPX module from the list of supported formats. % % The format of the UnregisterFPXImage method is: % % UnregisterFPXImage(void) % */ ModuleExport void UnregisterFPXImage(void) { (void) UnregisterMagickInfo("FPX"); } #if defined(MAGICKCORE_FPX_DELEGATE) /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % W r i t e F P X I m a g e % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % WriteFPXImage() writes an image in the FlashPix image format. This % method was contributed by BillR@corbis.com. % % The format of the WriteFPXImage method is: % % MagickBooleanType WriteFPXImage(const ImageInfo *image_info, % Image *image,ExceptionInfo *exception) % % A description of each parameter follows. % % o image_info: the image info. % % o image: The image. % % o exception: return any errors or warnings in this structure. % */ static void ColorTwistMultiply(FPXColorTwistMatrix first, FPXColorTwistMatrix second,FPXColorTwistMatrix *color_twist) { /* Matrix multiply. */ assert(color_twist != (FPXColorTwistMatrix *) NULL); color_twist->byy=(first.byy*second.byy)+(first.byc1*second.bc1y)+ (first.byc2*second.bc2y)+(first.dummy1_zero*second.dummy4_zero); color_twist->byc1=(first.byy*second.byc1)+(first.byc1*second.bc1c1)+ (first.byc2*second.bc2c1)+(first.dummy1_zero*second.dummy5_zero); color_twist->byc2=(first.byy*second.byc2)+(first.byc1*second.bc1c2)+ (first.byc2*second.bc2c2)+(first.dummy1_zero*second.dummy6_zero); color_twist->dummy1_zero=(first.byy*second.dummy1_zero)+ (first.byc1*second.dummy2_zero)+(first.byc2*second.dummy3_zero)+ (first.dummy1_zero*second.dummy7_one); color_twist->bc1y=(first.bc1y*second.byy)+(first.bc1c1*second.bc1y)+ (first.bc1c2*second.bc2y)+(first.dummy2_zero*second.dummy4_zero); color_twist->bc1c1=(first.bc1y*second.byc1)+(first.bc1c1*second.bc1c1)+ (first.bc1c2*second.bc2c1)+(first.dummy2_zero*second.dummy5_zero); color_twist->bc1c2=(first.bc1y*second.byc2)+(first.bc1c1*second.bc1c2)+ (first.bc1c2*second.bc2c2)+(first.dummy2_zero*second.dummy6_zero); color_twist->dummy2_zero=(first.bc1y*second.dummy1_zero)+ (first.bc1c1*second.dummy2_zero)+(first.bc1c2*second.dummy3_zero)+ (first.dummy2_zero*second.dummy7_one); color_twist->bc2y=(first.bc2y*second.byy)+(first.bc2c1*second.bc1y)+ (first.bc2c2*second.bc2y)+(first.dummy3_zero*second.dummy4_zero); color_twist->bc2c1=(first.bc2y*second.byc1)+(first.bc2c1*second.bc1c1)+ (first.bc2c2*second.bc2c1)+(first.dummy3_zero*second.dummy5_zero); color_twist->bc2c2=(first.bc2y*second.byc2)+(first.bc2c1*second.bc1c2)+ (first.bc2c2*second.bc2c2)+(first.dummy3_zero*second.dummy6_zero); color_twist->dummy3_zero=(first.bc2y*second.dummy1_zero)+ (first.bc2c1*second.dummy2_zero)+(first.bc2c2*second.dummy3_zero)+ (first.dummy3_zero*second.dummy7_one); color_twist->dummy4_zero=(first.dummy4_zero*second.byy)+ (first.dummy5_zero*second.bc1y)+(first.dummy6_zero*second.bc2y)+ (first.dummy7_one*second.dummy4_zero); color_twist->dummy5_zero=(first.dummy4_zero*second.byc1)+ (first.dummy5_zero*second.bc1c1)+(first.dummy6_zero*second.bc2c1)+ (first.dummy7_one*second.dummy5_zero); color_twist->dummy6_zero=(first.dummy4_zero*second.byc2)+ (first.dummy5_zero*second.bc1c2)+(first.dummy6_zero*second.bc2c2)+ (first.dummy7_one*second.dummy6_zero); color_twist->dummy7_one=(first.dummy4_zero*second.dummy1_zero)+ (first.dummy5_zero*second.dummy2_zero)+ (first.dummy6_zero*second.dummy3_zero)+(first.dummy7_one*second.dummy7_one); } static void SetBrightness(double brightness,FPXColorTwistMatrix *color_twist) { FPXColorTwistMatrix effect, result; /* Set image brightness in color twist matrix. */ assert(color_twist != (FPXColorTwistMatrix *) NULL); brightness=sqrt((double) brightness); effect.byy=brightness; effect.byc1=0.0; effect.byc2=0.0; effect.dummy1_zero=0.0; effect.bc1y=0.0; effect.bc1c1=brightness; effect.bc1c2=0.0; effect.dummy2_zero=0.0; effect.bc2y=0.0; effect.bc2c1=0.0; effect.bc2c2=brightness; effect.dummy3_zero=0.0; effect.dummy4_zero=0.0; effect.dummy5_zero=0.0; effect.dummy6_zero=0.0; effect.dummy7_one=1.0; ColorTwistMultiply(*color_twist,effect,&result); *color_twist=result; } static void SetColorBalance(double red,double green,double blue, FPXColorTwistMatrix *color_twist) { FPXColorTwistMatrix blue_effect, green_effect, result, rgb_effect, rg_effect, red_effect; /* Set image color balance in color twist matrix. */ assert(color_twist != (FPXColorTwistMatrix *) NULL); red=sqrt((double) red)-1.0; green=sqrt((double) green)-1.0; blue=sqrt((double) blue)-1.0; red_effect.byy=1.0; red_effect.byc1=0.0; red_effect.byc2=0.299*red; red_effect.dummy1_zero=0.0; red_effect.bc1y=(-0.299)*red; red_effect.bc1c1=1.0-0.299*red; red_effect.bc1c2=(-0.299)*red; red_effect.dummy2_zero=0.0; red_effect.bc2y=0.701*red; red_effect.bc2c1=0.0; red_effect.bc2c2=1.0+0.402*red; red_effect.dummy3_zero=0.0; red_effect.dummy4_zero=0.0; red_effect.dummy5_zero=0.0; red_effect.dummy6_zero=0.0; red_effect.dummy7_one=1.0; green_effect.byy=1.0; green_effect.byc1=(-0.114)*green; green_effect.byc2=(-0.299)*green; green_effect.dummy1_zero=0.0; green_effect.bc1y=(-0.587)*green; green_effect.bc1c1=1.0-0.473*green; green_effect.bc1c2=0.299*green; green_effect.dummy2_zero=0.0; green_effect.bc2y=(-0.587)*green; green_effect.bc2c1=0.114*green; green_effect.bc2c2=1.0-0.288*green; green_effect.dummy3_zero=0.0; green_effect.dummy4_zero=0.0; green_effect.dummy5_zero=0.0; green_effect.dummy6_zero=0.0; green_effect.dummy7_one=1.0; blue_effect.byy=1.0; blue_effect.byc1=0.114*blue; blue_effect.byc2=0.0; blue_effect.dummy1_zero=0.0; blue_effect.bc1y=0.886*blue; blue_effect.bc1c1=1.0+0.772*blue; blue_effect.bc1c2=0.0; blue_effect.dummy2_zero=0.0; blue_effect.bc2y=(-0.114)*blue; blue_effect.bc2c1=(-0.114)*blue; blue_effect.bc2c2=1.0-0.114*blue; blue_effect.dummy3_zero=0.0; blue_effect.dummy4_zero=0.0; blue_effect.dummy5_zero=0.0; blue_effect.dummy6_zero=0.0; blue_effect.dummy7_one=1.0; ColorTwistMultiply(red_effect,green_effect,&rg_effect); ColorTwistMultiply(rg_effect,blue_effect,&rgb_effect); ColorTwistMultiply(*color_twist,rgb_effect,&result); *color_twist=result; } static void SetSaturation(double saturation,FPXColorTwistMatrix *color_twist) { FPXColorTwistMatrix effect, result; /* Set image saturation in color twist matrix. */ assert(color_twist != (FPXColorTwistMatrix *) NULL); effect.byy=1.0; effect.byc1=0.0; effect.byc2=0.0; effect.dummy1_zero=0.0; effect.bc1y=0.0; effect.bc1c1=saturation; effect.bc1c2=0.0; effect.dummy2_zero=0.0; effect.bc2y=0.0; effect.bc2c1=0.0; effect.bc2c2=saturation; effect.dummy3_zero=0.0; effect.dummy4_zero=0.0; effect.dummy5_zero=0.0; effect.dummy6_zero=0.0; effect.dummy7_one=1.0; ColorTwistMultiply(*color_twist,effect,&result); *color_twist=result; } static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image, ExceptionInfo *exception) { FPXBackground background_color; FPXColorspace colorspace = { TRUE, 4, { { NIFRGB_R, DATA_TYPE_UNSIGNED_BYTE }, { NIFRGB_G, DATA_TYPE_UNSIGNED_BYTE }, { NIFRGB_B, DATA_TYPE_UNSIGNED_BYTE }, { ALPHA, DATA_TYPE_UNSIGNED_BYTE } } }; const char *comment, *label, *option; FPXCompressionOption compression; FPXImageDesc fpx_info; FPXImageHandle *flashpix; FPXStatus fpx_status; FPXSummaryInformation summary_info; MagickBooleanType status; QuantumInfo *quantum_info; QuantumType quantum_type; register const Quantum *p; register ssize_t i; size_t length, memory_limit; ssize_t y; unsigned char *pixels; unsigned int tile_height, tile_width; /* Open input file. */ assert(image_info != (const ImageInfo *) NULL); assert(image_info->signature == MagickCoreSignature); assert(image != (Image *) NULL); assert(image->signature == MagickCoreSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickCoreSignature); status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception); if (status == MagickFalse) return(status); (void) TransformImageColorspace(image,sRGBColorspace,exception); (void) CloseBlob(image); /* Initialize FPX toolkit. */ image->depth=8; memory_limit=20000000; fpx_status=FPX_SetToolkitMemoryLimit(&memory_limit); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToInitializeFPXLibrary"); tile_width=64; tile_height=64; colorspace.numberOfComponents=3; if (image->alpha_trait != UndefinedPixelTrait) colorspace.numberOfComponents=4; if ((image_info->type != TrueColorType) && (SetImageGray(image,exception) != MagickFalse)) { colorspace.numberOfComponents=1; colorspace.theComponents[0].myColor=MONOCHROME; } background_color.color1_value=0; background_color.color2_value=0; background_color.color3_value=0; background_color.color4_value=0; compression=NONE; if (image->compression == JPEGCompression) compression=JPEG_UNSPECIFIED; if (image_info->compression == JPEGCompression) compression=JPEG_UNSPECIFIED; { #if defined(macintosh) FSSpec fsspec; FilenameToFSSpec(filename,&fsspec); fpx_status=FPX_CreateImageByFilename((const FSSpec &) fsspec,image->columns, #else fpx_status=FPX_CreateImageByFilename(image->filename,image->columns, #endif image->rows,tile_width,tile_height,colorspace,background_color, compression,&flashpix); } if (fpx_status != FPX_OK) return(status); if (compression == JPEG_UNSPECIFIED) { /* Initialize the compression by quality for the entire image. */ fpx_status=FPX_SetJPEGCompression(flashpix,(unsigned short) image->quality == UndefinedCompressionQuality ? 75 : image->quality); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetJPEGLevel"); } /* Set image summary info. */ summary_info.title_valid=MagickFalse; summary_info.subject_valid=MagickFalse; summary_info.author_valid=MagickFalse; summary_info.comments_valid=MagickFalse; summary_info.keywords_valid=MagickFalse; summary_info.OLEtemplate_valid=MagickFalse; summary_info.last_author_valid=MagickFalse; summary_info.rev_number_valid=MagickFalse; summary_info.edit_time_valid=MagickFalse; summary_info.last_printed_valid=MagickFalse; summary_info.create_dtm_valid=MagickFalse; summary_info.last_save_dtm_valid=MagickFalse; summary_info.page_count_valid=MagickFalse; summary_info.word_count_valid=MagickFalse; summary_info.char_count_valid=MagickFalse; summary_info.thumbnail_valid=MagickFalse; summary_info.appname_valid=MagickFalse; summary_info.security_valid=MagickFalse; summary_info.title.ptr=(unsigned char *) NULL; label=GetImageProperty(image,"label",exception); if (label != (const char *) NULL) { /* Note image label. */ summary_info.title_valid=MagickTrue; length=strlen(label); summary_info.title.length=length; if (~length >= (MagickPathExtent-1)) summary_info.title.ptr=(unsigned char *) AcquireQuantumMemory( length+MagickPathExtent,sizeof(*summary_info.title.ptr)); if (summary_info.title.ptr == (unsigned char *) NULL) ThrowWriterException(DelegateError,"UnableToSetImageTitle"); (void) CopyMagickString((char *) summary_info.title.ptr,label, MagickPathExtent); } comment=GetImageProperty(image,"comment",exception); if (comment != (const char *) NULL) { /* Note image comment. */ summary_info.comments_valid=MagickTrue; summary_info.comments.ptr=(unsigned char *) AcquireString(comment); summary_info.comments.length=strlen(comment); } fpx_status=FPX_SetSummaryInformation(flashpix,&summary_info); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetSummaryInfo"); /* Initialize FlashPix image description. */ quantum_info=AcquireQuantumInfo(image_info,image); if (quantum_info == (QuantumInfo *) NULL) ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); pixels=(unsigned char *) GetQuantumPixels(quantum_info); fpx_info.numberOfComponents=colorspace.numberOfComponents; for (i=0; i < (ssize_t) fpx_info.numberOfComponents; i++) { fpx_info.components[i].myColorType.myDataType=DATA_TYPE_UNSIGNED_BYTE; fpx_info.components[i].horzSubSampFactor=1; fpx_info.components[i].vertSubSampFactor=1; fpx_info.components[i].columnStride=fpx_info.numberOfComponents; fpx_info.components[i].lineStride= image->columns*fpx_info.components[i].columnStride; fpx_info.components[i].theData=pixels+i; } fpx_info.components[0].myColorType.myColor=fpx_info.numberOfComponents != 1 ? NIFRGB_R : MONOCHROME; fpx_info.components[1].myColorType.myColor=NIFRGB_G; fpx_info.components[2].myColorType.myColor=NIFRGB_B; fpx_info.components[3].myColorType.myColor=ALPHA; /* Write image pixels. */ quantum_type=RGBQuantum; if (image->alpha_trait != UndefinedPixelTrait) quantum_type=RGBAQuantum; if (fpx_info.numberOfComponents == 1) quantum_type=GrayQuantum; for (y=0; y < (ssize_t) image->rows; y++) { p=GetVirtualPixels(image,0,y,image->columns,1,exception); if (p == (const Quantum *) NULL) break; length=ExportQuantumPixels(image,(CacheView *) NULL,quantum_info, quantum_type,pixels,exception); fpx_status=FPX_WriteImageLine(flashpix,&fpx_info); if (fpx_status != FPX_OK) break; status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y, image->rows); if (status == MagickFalse) break; } quantum_info=DestroyQuantumInfo(quantum_info); option=GetImageOption(image_info,"fpx:view"); if (option != (const char *) NULL) { FPXAffineMatrix affine; FPXColorTwistMatrix color_twist; FPXContrastAdjustment contrast; FPXFilteringValue sharpen; FPXResultAspectRatio aspect_ratio; FPXROI view_rect; MagickBooleanType affine_valid, aspect_ratio_valid, color_twist_valid, contrast_valid, sharpen_valid, view_rect_valid; /* Initialize default viewing parameters. */ contrast=1.0; contrast_valid=MagickTrue; color_twist.byy=1.0; color_twist.byc1=0.0; color_twist.byc2=0.0; color_twist.dummy1_zero=0.0; color_twist.bc1y=0.0; color_twist.bc1c1=1.0; color_twist.bc1c2=0.0; color_twist.dummy2_zero=0.0; color_twist.bc2y=0.0; color_twist.bc2c1=0.0; color_twist.bc2c2=1.0; color_twist.dummy3_zero=0.0; color_twist.dummy4_zero=0.0; color_twist.dummy5_zero=0.0; color_twist.dummy6_zero=0.0; color_twist.dummy7_one=1.0; color_twist_valid=MagickTrue; sharpen=0.0; sharpen_valid=MagickTrue; aspect_ratio=(double) image->columns/image->rows; aspect_ratio_valid=MagickTrue; view_rect.left=(float) 0.1; view_rect.width=aspect_ratio-0.2; view_rect.top=(float) 0.1; view_rect.height=(float) 0.8; /* 1.0-0.2 */ view_rect_valid=MagickTrue; affine.a11=1.0; affine.a12=0.0; affine.a13=0.0; affine.a14=0.0; affine.a21=0.0; affine.a22=1.0; affine.a23=0.0; affine.a24=0.0; affine.a31=0.0; affine.a32=0.0; affine.a33=1.0; affine.a34=0.0; affine.a41=0.0; affine.a42=0.0; affine.a43=0.0; affine.a44=1.0; affine_valid=MagickTrue; if (0) { /* Color color twist. */ SetBrightness(0.5,&color_twist); SetSaturation(0.5,&color_twist); SetColorBalance(0.5,1.0,1.0,&color_twist); color_twist_valid=MagickTrue; } if (affine_valid != MagickFalse) { fpx_status=FPX_SetImageAffineMatrix(flashpix,&affine); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetAffineMatrix"); } if (aspect_ratio_valid != MagickFalse) { fpx_status=FPX_SetImageResultAspectRatio(flashpix,&aspect_ratio); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetAspectRatio"); } if (color_twist_valid != MagickFalse) { fpx_status=FPX_SetImageColorTwistMatrix(flashpix,&color_twist); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetColorTwist"); } if (contrast_valid != MagickFalse) { fpx_status=FPX_SetImageContrastAdjustment(flashpix,&contrast); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetContrast"); } if (sharpen_valid != MagickFalse) { fpx_status=FPX_SetImageFilteringValue(flashpix,&sharpen); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetFilteringValue"); } if (view_rect_valid != MagickFalse) { fpx_status=FPX_SetImageROI(flashpix,&view_rect); if (fpx_status != FPX_OK) ThrowWriterException(DelegateError,"UnableToSetRegionOfInterest"); } } (void) FPX_CloseImage(flashpix); FPX_ClearSystem(); return(MagickTrue); } #endif
Close