|
MagickWand
6.7.5
|
00001 /* 00002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00003 % % 00004 % % 00005 % % 00006 % DDDD RRRR AAA W W % 00007 % D D R R A A W W % 00008 % D D RRRR AAAAA W W % 00009 % D D R R A A W W W % 00010 % DDDD R R A A W W % 00011 % % 00012 % TTTTT EEEEE SSSSS TTTTT % 00013 % T E SS T % 00014 % T EEE SSS T % 00015 % T E SS T % 00016 % T EEEEE SSSSS T % 00017 % % 00018 % % 00019 % MagickWand Drawing Tests % 00020 % % 00021 % Software Design % 00022 % John Cristy % 00023 % Bob Friesenhahn % 00024 % March 2002 % 00025 % % 00026 % % 00027 % Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization % 00028 % dedicated to making software imaging solutions freely available. % 00029 % % 00030 % You may not use this file except in compliance with the License. You may % 00031 % obtain a copy of the License at % 00032 % % 00033 % http://www.imagemagick.org/script/license.php % 00034 % % 00035 % Unless required by applicable law or agreed to in writing, software % 00036 % distributed under the License is distributed on an "AS IS" BASIS, % 00037 % WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 00038 % See the License for the specific language governing permissions and % 00039 % limitations under the License. % 00040 % % 00041 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00042 % 00043 % 00044 % 00045 */ 00046 00047 #include <stdio.h> 00048 #include <stdlib.h> 00049 #include <MagickWand/MagickWand.h> 00050 00051 #define ThrowWandException(wand) \ 00052 { \ 00053 char \ 00054 *description; \ 00055 \ 00056 ExceptionType \ 00057 severity; \ 00058 \ 00059 description=MagickGetException(wand,&severity); \ 00060 (void) FormatLocaleFile(stderr,"%s %s %lu %s\n",GetMagickModule(), \ 00061 description); \ 00062 description=(char *) MagickRelinquishMemory(description); \ 00063 exit(-1); \ 00064 } 00065 00066 static MagickBooleanType ScribbleImage (MagickWand *canvas) 00067 { 00068 DrawingWand 00069 *picasso; 00070 00071 PixelWand 00072 *color; 00073 00074 picasso=NewDrawingWand(); 00075 color=NewPixelWand(); 00076 (void) PushDrawingWand(picasso); 00077 { 00078 DrawSetViewbox(picasso,0,0,(ssize_t) MagickGetImageWidth(canvas), 00079 (ssize_t) MagickGetImageHeight(canvas)); 00080 DrawScale(picasso,1.101,1.08); 00081 DrawTranslate(picasso,-23.69,-22.97); 00082 DrawRotate(picasso,0); 00083 (void) PixelSetColor(color,"#ffffff"); 00084 DrawSetFillColor(picasso,color); 00085 DrawRectangle(picasso,23.69,22.97,564.6,802.2); 00086 DrawSetFillAlpha(picasso,1.0); 00087 (void) PixelSetColor(color,"none"); 00088 DrawSetFillColor(picasso,color); 00089 DrawSetStrokeColor(picasso,color); 00090 DrawSetStrokeAntialias(picasso,MagickTrue); 00091 DrawSetStrokeLineCap(picasso,RoundCap); 00092 DrawSetStrokeLineJoin(picasso,RoundJoin); 00093 DrawPushDefs(picasso); 00094 { 00095 DrawPushClipPath(picasso,"clip_1"); 00096 { 00097 (void) PushDrawingWand(picasso); 00098 { 00099 DrawRectangle(picasso,0,0,595.3,841.9); 00100 } 00101 (void) PopDrawingWand(picasso); 00102 } 00103 DrawPopClipPath(picasso); 00104 } 00105 DrawPopDefs(picasso); 00106 (void) PushDrawingWand(picasso); 00107 { 00108 (void) DrawSetClipPath(picasso, "url(#clip_1)"); 00109 00110 (void) PushDrawingWand(picasso); 00111 { 00112 DrawSetStrokeAntialias(picasso,MagickTrue); 00113 DrawSetStrokeWidth(picasso,4.032); 00114 DrawSetStrokeLineCap(picasso,RoundCap); 00115 DrawSetStrokeLineJoin(picasso,RoundJoin); 00116 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00117 (void) PixelSetColor(color,"#ff0000"); 00118 DrawSetStrokeColor(picasso,color); 00119 DrawSetFillRule(picasso,EvenOddRule); 00120 (void) PixelSetColor(color,"#ff00ff"); 00121 DrawSetFillColor(picasso,color); 00122 DrawRectangle(picasso,72,72,144,144); 00123 } 00124 (void) PopDrawingWand(picasso); 00125 (void) PushDrawingWand(picasso); 00126 { 00127 DrawSetStrokeAntialias(picasso,MagickTrue); 00128 DrawSetStrokeWidth(picasso,9); 00129 DrawSetStrokeLineCap(picasso,RoundCap); 00130 DrawSetStrokeLineJoin(picasso,RoundJoin); 00131 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00132 (void) PixelSetColor(color,"#00ff00"); 00133 DrawSetStrokeColor(picasso,color); 00134 DrawSetFillRule(picasso,EvenOddRule); 00135 (void) PixelSetColor(color,"#0080ff"); 00136 DrawSetFillColor(picasso,color); 00137 DrawRoundRectangle(picasso,72,216,360,432,9,9); 00138 } 00139 (void) PopDrawingWand(picasso); 00140 (void) PushDrawingWand(picasso); 00141 { 00142 const PointInfo points[37] = 00143 { 00144 { 378.1,81.72 }, { 381.1,79.56 }, { 384.3,78.12 }, { 387.6,77.33 }, 00145 { 391.1,77.11 }, { 394.6,77.62 }, { 397.8,78.77 }, { 400.9,80.57 }, 00146 { 403.6,83.02 }, { 523.9,216.8 }, { 526.2,219.7 }, { 527.6,223 }, 00147 { 528.4,226.4 }, { 528.6,229.8 }, { 528,233.3 }, { 526.9,236.5 }, 00148 { 525.1,239.5 }, { 522.6,242.2 }, { 495.9,266.3 }, { 493,268.5 }, 00149 { 489.7,269.9 }, { 486.4,270.8 }, { 482.9,270.9 }, { 479.5,270.4 }, 00150 { 476.2,269.3 }, { 473.2,267.5 }, { 470.4,265 }, { 350,131.2 }, 00151 { 347.8,128.3 }, { 346.4,125.1 }, { 345.6,121.7 }, {345.4,118.2 }, 00152 { 346,114.8 }, { 347.1,111.5 }, { 348.9,108.5 }, { 351.4,105.8 }, 00153 { 378.1,81.72 } 00154 }; 00155 00156 DrawSetStrokeAntialias(picasso,MagickTrue); 00157 DrawSetStrokeWidth(picasso,2.016); 00158 DrawSetStrokeLineCap(picasso,RoundCap); 00159 DrawSetStrokeLineJoin(picasso,RoundJoin); 00160 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00161 (void) PixelSetColor(color,"#000080"); 00162 DrawSetStrokeColor(picasso,color); 00163 DrawSetFillRule(picasso,EvenOddRule); 00164 (void) PixelSetColor(color,"#c2c280"); 00165 DrawSetFillColor(picasso,color); 00166 DrawPolygon(picasso,37,points); 00167 } 00168 (void) PopDrawingWand(picasso); 00169 (void) PushDrawingWand(picasso); 00170 { 00171 DrawSetStrokeAntialias(picasso,MagickTrue); 00172 DrawSetStrokeWidth(picasso,3.024); 00173 DrawSetStrokeLineCap(picasso,RoundCap); 00174 DrawSetStrokeLineJoin(picasso,RoundJoin); 00175 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00176 (void) PixelSetColor(color,"#000080"); 00177 DrawSetStrokeColor(picasso,color); 00178 DrawSetFillRule(picasso,EvenOddRule); 00179 (void) PixelSetColor(color,"#000080"); 00180 DrawSetFillColor(picasso,color); 00181 DrawEllipse(picasso,489.6,424.8,72,129.6,0,360); 00182 } 00183 (void) PopDrawingWand(picasso); 00184 (void) PushDrawingWand(picasso); 00185 { 00186 const PointInfo points[48] = 00187 { 00188 { 213.8,25.13}, { 216.7,24.48 }, {219.8,24.55 }, { 223.1,25.42 }, 00189 { 226.7,27 }, { 230.3,29.3 }, { 234.1,32.26 }, { 237.9,35.86 }, 00190 { 241.8,40.03 }, { 249.7,50.11 }, { 257.4,62.14 }, { 264.8,75.89 }, 00191 { 271.6,91.15 }, { 277.3,106.8 }, { 281.6,121.8 }, { 284.4,135.9 }, 00192 { 285.7,148.5 }, { 285.6,159.6 }, { 284.9,164.3 }, { 283.8,168.5 }, 00193 { 282.5,172.1 }, { 280.7,175 }, { 278.5,177.3 }, { 275.9,178.7 }, 00194 { 273,179.4 }, { 269.9,179.3 }, { 266.6,178.4 }, { 263.1,176.8 }, 00195 { 259.5,174.5}, { 255.7,171.6 }, { 251.9,168 }, { 248,163.8 }, 00196 { 244.1,159 }, { 240.1,153.7 }, { 232.3,141.7 }, { 225,127.9 }, 00197 { 218.2,112.7 }, { 212.5,97.06 }, { 208.2,82.01 }, { 205.4,67.97 }, 00198 { 204,55.3 }, { 204.3,44.35 }, { 204.9,39.6 }, { 205.9,35.42 }, 00199 { 207.4,31.82 }, { 209.2,28.87 }, { 211.3,26.64}, { 213.8,25.13 } 00200 }; 00201 00202 DrawSetStrokeAntialias(picasso,MagickTrue); 00203 DrawSetStrokeWidth(picasso,3.024); 00204 DrawSetStrokeLineCap(picasso,RoundCap); 00205 DrawSetStrokeLineJoin(picasso,RoundJoin); 00206 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00207 (void) PixelSetColor(color,"#ff8000"); 00208 DrawSetStrokeColor(picasso,color); 00209 DrawSetFillRule(picasso,EvenOddRule); 00210 (void) PixelSetColor(color,"#00ffff"); 00211 DrawSetFillColor(picasso,color); 00212 DrawPolygon(picasso,48,points); 00213 } 00214 (void) PopDrawingWand(picasso); 00215 (void) PushDrawingWand(picasso); 00216 { 00217 DrawSetStrokeAntialias(picasso,MagickTrue); 00218 DrawSetStrokeWidth(picasso,12.02); 00219 DrawSetStrokeLineCap(picasso,RoundCap); 00220 DrawSetStrokeLineJoin(picasso,RoundJoin); 00221 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00222 (void) PixelSetColor(color,"#4000c2"); 00223 DrawSetStrokeColor(picasso,color); 00224 (void) PixelSetColor(color,"none"); 00225 DrawSetFillColor(picasso,color); 00226 DrawArc(picasso,360,554.4,187.2,237.6,0,90); 00227 } 00228 (void) PopDrawingWand(picasso); 00229 (void) PushDrawingWand(picasso); 00230 { 00231 DrawSetStrokeAntialias(picasso,MagickTrue); 00232 DrawSetStrokeWidth(picasso,9); 00233 DrawSetStrokeLineCap(picasso,RoundCap); 00234 DrawSetStrokeLineJoin(picasso,RoundJoin); 00235 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00236 (void) PixelSetColor(color,"#4000c2"); 00237 DrawSetStrokeColor(picasso,color); 00238 DrawSetFillRule(picasso,EvenOddRule); 00239 (void) PixelSetColor(color,"#4000c2"); 00240 DrawSetFillColor(picasso,color); 00241 DrawEllipse(picasso,388.8,626.4,100.8,122.4,0,90); 00242 } 00243 (void) PopDrawingWand(picasso); 00244 (void) PushDrawingWand(picasso); 00245 { 00246 const PointInfo points[6] = 00247 { 00248 { 180,504 }, { 282.7,578.6 }, { 243.5,699.4 }, { 116.5,699.4 }, 00249 { 77.26,578.6 }, { 180,504 } 00250 }; 00251 00252 DrawSetStrokeAntialias(picasso,MagickTrue); 00253 DrawSetStrokeWidth(picasso,9); 00254 DrawSetStrokeLineCap(picasso,RoundCap); 00255 DrawSetStrokeLineJoin(picasso,RoundJoin); 00256 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00257 (void) PixelSetColor(color,"#4000c2"); 00258 DrawSetStrokeColor(picasso,color); 00259 DrawSetFillRule(picasso,EvenOddRule); 00260 (void) PixelSetColor(color,"#800000"); 00261 DrawSetFillColor(picasso,color); 00262 DrawPolygon(picasso,6,points); 00263 } 00264 (void) PopDrawingWand(picasso); 00265 (void) PushDrawingWand(picasso); 00266 { 00267 const PointInfo points[11] = 00268 { 00269 { 180,504 }, { 211.8,568.3 }, { 282.7,578.6 }, { 231.3,628.7 }, 00270 { 243.5,699.4 }, { 180,666 }, { 116.5,699.4 }, { 128.7,628.7 }, 00271 { 77.26,578.6 }, { 148.2,568.3 }, { 180,504 } 00272 }; 00273 00274 DrawSetStrokeAntialias(picasso,MagickTrue); 00275 DrawSetStrokeWidth(picasso,9); 00276 DrawSetStrokeLineCap(picasso,RoundCap); 00277 DrawSetStrokeLineJoin(picasso,RoundJoin); 00278 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00279 (void) PixelSetColor(color,"#4000c2"); 00280 DrawSetStrokeColor(picasso,color); 00281 DrawSetFillRule(picasso,EvenOddRule); 00282 (void) PixelSetColor(color,"#800000"); 00283 DrawSetFillColor(picasso,color); 00284 DrawPolygon(picasso,11,points); 00285 } 00286 (void) PopDrawingWand(picasso); 00287 (void) PushDrawingWand(picasso); 00288 { 00289 const PointInfo points[15] = 00290 { 00291 { 540,288 }, { 561.6,216 }, { 547.2,43.2 }, { 280.8,36 }, 00292 { 302.4,194.4 }, { 331.2,64.8 }, { 504,64.8 }, { 475.2,115.2 }, 00293 { 525.6,93.6 }, { 496.8,158.4 }, { 532.8,136.8 }, { 518.4,180 }, 00294 { 540,172.8 }, { 540,223.2 }, { 540,288 } 00295 }; 00296 00297 DrawSetStrokeAntialias(picasso,MagickTrue); 00298 DrawSetStrokeWidth(picasso,5.976); 00299 DrawSetStrokeLineCap(picasso,RoundCap); 00300 DrawSetStrokeLineJoin(picasso,RoundJoin); 00301 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00302 (void) PixelSetColor(color,"#4000c2"); 00303 DrawSetStrokeColor(picasso,color); 00304 DrawSetFillRule(picasso,EvenOddRule); 00305 (void) PixelSetColor(color,"#ffff00"); 00306 DrawSetFillColor(picasso,color); 00307 DrawPolygon(picasso,15,points); 00308 } 00309 (void) PopDrawingWand(picasso); 00310 (void) PushDrawingWand(picasso); 00311 { 00312 const PointInfo points[7] = 00313 { 00314 { 57.6,640.8 }, { 57.6,784.8 }, { 194.4,799.2 }, { 259.2,777.6 }, 00315 { 151.2,756 }, { 86.4,748.8 }, { 57.6,640.8 } 00316 }; 00317 00318 DrawSetStrokeAntialias(picasso,MagickTrue); 00319 DrawSetStrokeWidth(picasso,5.976); 00320 DrawSetStrokeLineCap(picasso,RoundCap); 00321 DrawSetStrokeLineJoin(picasso,RoundJoin); 00322 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00323 (void) PixelSetColor(color,"#4000c2"); 00324 DrawSetStrokeColor(picasso,color); 00325 DrawSetFillRule(picasso,EvenOddRule); 00326 (void) PixelSetColor(color,"#ffff00"); 00327 DrawSetFillColor(picasso,color); 00328 DrawPolygon(picasso,7,points); 00329 } 00330 (void) PopDrawingWand(picasso); 00331 (void) PushDrawingWand(picasso); 00332 { 00333 const PointInfo points[193] = 00334 { 00335 { 27.86,565.3 }, { 29.66,550.8 }, { 31.97,538.1 }, { 34.85,527.1 }, 00336 { 38.09,517.7 }, { 41.83,509.8 }, { 45.86,503.1 }, { 50.33,497.6 }, 00337 { 55.08,493.2 }, { 60.19,489.8 }, { 65.45,487.3 }, { 70.92,485.4 }, 00338 { 76.61,484.2 }, { 88.42,483 }, { 100.4,482.9 }, { 108.4,482.2 }, 00339 { 119.8,480.3 }, { 150.8,474.1 }, { 189.4,466.6 }, { 210.3,463 }, 00340 { 231.5,459.9 }, { 252.4,457.8 }, { 272.7,456.6 }, { 291.8,456.9 }, 00341 { 300.7,457.7 }, { 309.1,458.9 }, { 316.9,460.6 }, { 324.1,462.8 }, 00342 { 330.7,465.6 }, { 336.4,469 }, { 341.3,473 }, { 345.3,477.7 }, 00343 { 348.4,483.1 }, { 350.4,489.2}, { 352.4,495.4 }, { 355.2,500.9 }, 00344 { 358.8,505.8 }, { 363,510 }, { 367.8,513.6 }, { 373,516.8 }, 00345 { 378.6,519.6 }, { 384.3,521.8 }, { 396.4,525.4 }, { 408.2,527.9 }, 00346 { 428,531.2 }, { 434.6,532.9 }, { 436.7,533.8 }, { 437.8,534.9 }, 00347 { 437.8,536.2 }, { 436.8,537.8 }, { 434.5,539.6 }, { 430.9,541.8 }, 00348 { 419.3,547.6 }, { 401.3,555.2 }, { 342.4,577.9 }, {325.2,584.9 }, 00349 { 311,591.3 }, { 300,597.3 }, { 291.6,602.8 }, { 285.8,607.8 }, 00350 { 282.3,612.3 }, { 281.4,614.4 }, { 280.9,616.2 }, { 281.2,619.6 }, 00351 { 282.1,621.2 }, { 283.3,622.6 }, { 286.8,624.9 }, { 291.5,626.6 }, 00352 { 297.1,627.8 }, { 303.6,628.3 }, { 310.5,628.3 }, { 317.9,627.6 }, 00353 { 325.2,626.3 }, { 332.6,624.3 }, { 339.5,621.7 }, { 345.9,618.4 }, 00354 { 351.4,614.4 }, { 353.9,612.2 }, { 356,609.8 }, { 357.9,607.1 }, 00355 { 359.4,604.3 }, { 360.6,601.3 }, { 361.4,598.2 }, { 361.7,594.9 }, 00356 { 361.7,591.3 }, { 361.2,587.7 }, { 360.1,583.7 }, { 358.6,579.7 }, 00357 { 356.4,575.4 }, { 353.7,570.9 }, { 350.4,566.2 }, { 346.4,561.3 }, 00358 { 341.8,556.2 }, { 336.5,550.9 }, { 330.6,545.5 }, { 323.8,539.8 }, 00359 { 316.2,533.9 }, { 298.7,521.5 }, { 277.8,508.2 }, { 256.1,495.5 }, 00360 { 236,484.5 }, { 217.7,475.1 }, { 200.8,467.1 }, { 185.6,460.7 }, 00361 { 171.9,455.5 }, { 159.6,451.6 }, { 148.6,448.8 }, { 139,447 }, 00362 { 130.5,446.2 }, { 123.3,446.2 }, { 117.1,446.9 }, { 112,448.3 }, 00363 { 107.9,450.2 }, { 104.8,452.5 }, { 102.5,455.2 }, { 101,458.1 }, 00364 { 100.2,461.2 }, { 100.2,464.3 }, { 100.7,467.4 }, { 101.8,470.3 }, 00365 { 103.4,473 }, { 105.4,475.3 }, { 107.8,477.1 }, { 110.5,478.4 }, 00366 { 113.4,479.1 }, { 116.5,478.9 }, { 119.7,478 }, { 123,476.2 }, 00367 { 126.4,473.3 }, { 129.6,469.2 }, { 132.7,463.9 }, { 135.2,458.4 }, 00368 { 136.6,453.7 }, { 137,449.9 }, { 136.6,446.8 }, { 135.4,444.5 }, 00369 { 133.3,442.9 }, { 130.8,441.9 }, { 127.5,441.4 }, { 123.9,441.6 }, 00370 { 119.8,442.3 }, { 110.7,445.1 }, { 101.1,449.5 }, { 91.37,455.2 }, 00371 { 82.37,461.9 }, { 74.66,469.2 }, { 71.57,473 }, { 68.98,476.8 }, 00372 { 67.03,480.7 }, { 65.81,484.4 }, { 65.45,488.2 }, { 65.95,491.7 }, 00373 { 67.46,495.1 }, { 69.98,498.3 }, { 73.66,501.3 }, { 78.55,503.9 }, 00374 { 84.82,506.3 }, { 92.38,508.2 }, { 107.1,511.6 }, { 118.2,514.8 }, 00375 { 125.9,517.8 }, { 130.7,520.4 }, { 132.1,521.7 }, { 132.8,522.9 }, 00376 { 133,524.2 }, { 132.6,525.3 }, { 131.8,526.5 }, { 130.5,527.5 }, 00377 { 126.6,529.6 }, { 121.5,531.7 }, { 115.3,533.7 }, { 101.4,537.6 }, 00378 { 87.55,541.8 }, { 81.36,544 }, { 76.25,546.3 }, { 71.64,549.5 }, 00379 { 66.89,554.1 }, { 62.14,559.8 }, { 57.38,566.1 }, { 48.17,579.6 }, 00380 { 39.96,591.4 }, { 36.43,595.9 }, { 34.78,597.6 }, { 33.26,598.8 }, 00381 { 31.9,599.6 }, { 30.67,599.9 }, { 29.59,599.7 }, { 28.66,598.8 }, 00382 { 27.86,597.4 }, { 27.29,595.2 }, { 26.64,588.7 }, { 26.86,578.8 }, 00383 { 27.86,565.3 } 00384 }; 00385 00386 DrawSetStrokeAntialias(picasso,MagickTrue); 00387 DrawSetStrokeWidth(picasso,5.904); 00388 DrawSetStrokeLineCap(picasso,RoundCap); 00389 DrawSetStrokeLineJoin(picasso,RoundJoin); 00390 (void) DrawSetStrokeDashArray(picasso,0,(const double *)NULL); 00391 (void) PixelSetColor(color,"#4000c2"); 00392 DrawSetStrokeColor(picasso,color); 00393 DrawSetFillRule(picasso,EvenOddRule); 00394 (void) PixelSetColor(color,"#ffff00"); 00395 DrawSetFillColor(picasso,color); 00396 DrawPolygon(picasso,193,points); 00397 } 00398 (void) PopDrawingWand(picasso); 00399 } 00400 (void) PopDrawingWand(picasso); 00401 } 00402 (void) PopDrawingWand(picasso); 00403 (void) MagickDrawImage(canvas,picasso); 00404 color=DestroyPixelWand(color); 00405 picasso=DestroyDrawingWand(picasso); 00406 return(MagickTrue); 00407 } 00408 00409 int main(int argc,char **argv) 00410 { 00411 char 00412 filename[MaxTextExtent]; 00413 00414 MagickBooleanType 00415 status; 00416 00417 MagickWand 00418 *canvas; 00419 00420 if (argc != 2) 00421 { 00422 (void) printf ("Usage: %s filename\n",argv[0]); 00423 exit(1); 00424 } 00425 (void) CopyMagickString(filename,argv[1],MaxTextExtent); 00426 /* 00427 Create canvas image. 00428 */ 00429 MagickWandGenesis(); 00430 canvas=NewMagickWand(); 00431 status=MagickSetSize(canvas,596,842); 00432 if (status == MagickFalse) 00433 ThrowWandException(canvas); 00434 status=MagickReadImage(canvas,"xc:white"); 00435 if (status == MagickFalse) 00436 ThrowWandException(canvas); 00437 /* 00438 Scribble on image. 00439 */ 00440 status=ScribbleImage(canvas); 00441 if (status == MagickFalse) 00442 ThrowWandException(canvas); 00443 /* 00444 Set pixel depth to 8. 00445 */ 00446 status=MagickSetImageDepth(canvas,8); 00447 if (status == MagickFalse) 00448 ThrowWandException(canvas); 00449 /* 00450 Set RLE compression. 00451 */ 00452 status=MagickSetImageCompression(canvas,RLECompression); 00453 if (status == MagickFalse) 00454 ThrowWandException(canvas); 00455 /* 00456 Save image to file. 00457 */ 00458 status=MagickWriteImage(canvas,filename); 00459 if (status == MagickFalse) 00460 ThrowWandException(canvas); 00461 canvas=DestroyMagickWand(canvas); 00462 MagickWandTerminus(); 00463 return(0); 00464 }