rmagick-windows 2.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +14 -0
- data/.gitignore +23 -0
- data/.hound.yml +2 -0
- data/.rspec +1 -0
- data/.rubocop.yml +340 -0
- data/.simplecov +27 -0
- data/.travis.yml +60 -0
- data/CHANGELOG.md +915 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/CONTRIBUTING.md +50 -0
- data/Doxyfile +1514 -0
- data/Gemfile +10 -0
- data/LICENSE +20 -0
- data/README.textile +257 -0
- data/Rakefile +188 -0
- data/before_install_linux.sh +32 -0
- data/before_install_osx.sh +2 -0
- data/deprecated/RMagick.rb +6 -0
- data/doc/.cvsignore +1 -0
- data/doc/comtasks.html +287 -0
- data/doc/constants.html +1581 -0
- data/doc/css/doc.css +299 -0
- data/doc/css/popup.css +34 -0
- data/doc/css/ref.css +67 -0
- data/doc/draw.html +3272 -0
- data/doc/ex/InitialCoords.rb +22 -0
- data/doc/ex/NewCoordSys.rb +30 -0
- data/doc/ex/OrigCoordSys.rb +16 -0
- data/doc/ex/PreserveAspectRatio.rb +204 -0
- data/doc/ex/RotateScale.rb +36 -0
- data/doc/ex/Skew.rb +38 -0
- data/doc/ex/Use01.rb +15 -0
- data/doc/ex/Use02.rb +20 -0
- data/doc/ex/Use03.rb +16 -0
- data/doc/ex/ViewBox.rb +31 -0
- data/doc/ex/adaptive_threshold.rb +9 -0
- data/doc/ex/add_noise.rb +16 -0
- data/doc/ex/affine.rb +48 -0
- data/doc/ex/affine_transform.rb +20 -0
- data/doc/ex/arc.rb +49 -0
- data/doc/ex/arcpath.rb +32 -0
- data/doc/ex/arcs01.rb +28 -0
- data/doc/ex/arcs02.rb +59 -0
- data/doc/ex/average.rb +15 -0
- data/doc/ex/axes.rb +64 -0
- data/doc/ex/baseline_shift01.rb +17 -0
- data/doc/ex/bilevel_channel.rb +8 -0
- data/doc/ex/blur_image.rb +12 -0
- data/doc/ex/border.rb +10 -0
- data/doc/ex/bounding_box.rb +42 -0
- data/doc/ex/cbezier1.rb +41 -0
- data/doc/ex/cbezier2.rb +41 -0
- data/doc/ex/cbezier3.rb +41 -0
- data/doc/ex/cbezier4.rb +42 -0
- data/doc/ex/cbezier5.rb +42 -0
- data/doc/ex/cbezier6.rb +53 -0
- data/doc/ex/channel.rb +25 -0
- data/doc/ex/charcoal.rb +12 -0
- data/doc/ex/chop.rb +29 -0
- data/doc/ex/circle.rb +33 -0
- data/doc/ex/circle01.rb +16 -0
- data/doc/ex/clip_path.rb +60 -0
- data/doc/ex/coalesce.rb +57 -0
- data/doc/ex/color_fill_to_border.rb +29 -0
- data/doc/ex/color_floodfill.rb +28 -0
- data/doc/ex/color_histogram.rb +47 -0
- data/doc/ex/color_reset.rb +11 -0
- data/doc/ex/colorize.rb +16 -0
- data/doc/ex/colors.rb +64 -0
- data/doc/ex/compose_mask.rb +22 -0
- data/doc/ex/composite.rb +133 -0
- data/doc/ex/composite_layers.rb +53 -0
- data/doc/ex/composite_tiled.rb +21 -0
- data/doc/ex/contrast.rb +36 -0
- data/doc/ex/crop.rb +31 -0
- data/doc/ex/crop_with_gravity.rb +42 -0
- data/doc/ex/cubic01.rb +43 -0
- data/doc/ex/cubic02.rb +91 -0
- data/doc/ex/cycle_colormap.rb +21 -0
- data/doc/ex/dissolve.rb +12 -0
- data/doc/ex/drawcomp.rb +42 -0
- data/doc/ex/drop_shadow.rb +60 -0
- data/doc/ex/edge.rb +11 -0
- data/doc/ex/ellipse.rb +45 -0
- data/doc/ex/ellipse01.rb +21 -0
- data/doc/ex/emboss.rb +11 -0
- data/doc/ex/enhance.rb +28 -0
- data/doc/ex/equalize.rb +11 -0
- data/doc/ex/evenodd.rb +42 -0
- data/doc/ex/fill_pattern.rb +23 -0
- data/doc/ex/flatten_images.rb +36 -0
- data/doc/ex/flip.rb +11 -0
- data/doc/ex/flop.rb +11 -0
- data/doc/ex/font_styles.rb +32 -0
- data/doc/ex/fonts.rb +20 -0
- data/doc/ex/frame.rb +12 -0
- data/doc/ex/gaussian_blur.rb +11 -0
- data/doc/ex/get_multiline_type_metrics.rb +41 -0
- data/doc/ex/get_pixels.rb +47 -0
- data/doc/ex/get_type_metrics.rb +141 -0
- data/doc/ex/gradientfill.rb +27 -0
- data/doc/ex/grav.rb +45 -0
- data/doc/ex/gravity.rb +80 -0
- data/doc/ex/group.rb +26 -0
- data/doc/ex/hatchfill.rb +27 -0
- data/doc/ex/image.rb +44 -0
- data/doc/ex/images/Apple.miff +0 -0
- data/doc/ex/images/Ballerina.jpg +0 -0
- data/doc/ex/images/Ballerina3.jpg +0 -0
- data/doc/ex/images/Button_0.gif +0 -0
- data/doc/ex/images/Button_1.gif +0 -0
- data/doc/ex/images/Button_2.gif +0 -0
- data/doc/ex/images/Button_3.gif +0 -0
- data/doc/ex/images/Button_4.gif +0 -0
- data/doc/ex/images/Button_5.gif +0 -0
- data/doc/ex/images/Button_6.gif +0 -0
- data/doc/ex/images/Button_7.gif +0 -0
- data/doc/ex/images/Button_8.gif +0 -0
- data/doc/ex/images/Button_9.gif +0 -0
- data/doc/ex/images/Button_A.gif +0 -0
- data/doc/ex/images/Button_B.gif +0 -0
- data/doc/ex/images/Button_C.gif +0 -0
- data/doc/ex/images/Button_D.gif +0 -0
- data/doc/ex/images/Button_E.gif +0 -0
- data/doc/ex/images/Button_F.gif +0 -0
- data/doc/ex/images/Button_G.gif +0 -0
- data/doc/ex/images/Button_H.gif +0 -0
- data/doc/ex/images/Button_I.gif +0 -0
- data/doc/ex/images/Button_J.gif +0 -0
- data/doc/ex/images/Button_K.gif +0 -0
- data/doc/ex/images/Button_L.gif +0 -0
- data/doc/ex/images/Button_M.gif +0 -0
- data/doc/ex/images/Button_N.gif +0 -0
- data/doc/ex/images/Button_O.gif +0 -0
- data/doc/ex/images/Button_P.gif +0 -0
- data/doc/ex/images/Button_Q.gif +0 -0
- data/doc/ex/images/Button_R.gif +0 -0
- data/doc/ex/images/Button_S.gif +0 -0
- data/doc/ex/images/Button_T.gif +0 -0
- data/doc/ex/images/Button_U.gif +0 -0
- data/doc/ex/images/Button_V.gif +0 -0
- data/doc/ex/images/Button_W.gif +0 -0
- data/doc/ex/images/Button_X.gif +0 -0
- data/doc/ex/images/Button_Y.gif +0 -0
- data/doc/ex/images/Button_Z.gif +0 -0
- data/doc/ex/images/Cheetah.jpg +0 -0
- data/doc/ex/images/Coffee.wmf +0 -0
- data/doc/ex/images/Flower_Hat.jpg +0 -0
- data/doc/ex/images/Gold_Statue.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons.jpg +0 -0
- data/doc/ex/images/Hot_Air_Balloons_H.jpg +0 -0
- data/doc/ex/images/Leaf.miff +0 -0
- data/doc/ex/images/No.wmf +0 -0
- data/doc/ex/images/Polynesia.jpg +0 -0
- data/doc/ex/images/Red_Rocks.jpg +0 -0
- data/doc/ex/images/Rocks_On_Beach.miff +0 -0
- data/doc/ex/images/Shorts.jpg +0 -0
- data/doc/ex/images/Snake.wmf +0 -0
- data/doc/ex/images/Violin.jpg +0 -0
- data/doc/ex/images/Yellow_Rose.miff +0 -0
- data/doc/ex/images/big-duck.gif +0 -0
- data/doc/ex/images/duck.gif +0 -0
- data/doc/ex/images/duck0.gif +0 -0
- data/doc/ex/images/duck1.gif +0 -0
- data/doc/ex/images/duck10.gif +0 -0
- data/doc/ex/images/duck11.gif +0 -0
- data/doc/ex/images/duck12.gif +0 -0
- data/doc/ex/images/duck13.gif +0 -0
- data/doc/ex/images/duck14.gif +0 -0
- data/doc/ex/images/duck15.gif +0 -0
- data/doc/ex/images/duck2.gif +0 -0
- data/doc/ex/images/duck3.gif +0 -0
- data/doc/ex/images/duck4.gif +0 -0
- data/doc/ex/images/duck5.gif +0 -0
- data/doc/ex/images/duck6.gif +0 -0
- data/doc/ex/images/duck7.gif +0 -0
- data/doc/ex/images/duck8.gif +0 -0
- data/doc/ex/images/duck9.gif +0 -0
- data/doc/ex/images/graydient230x6.gif +0 -0
- data/doc/ex/images/image_with_profile.jpg +0 -0
- data/doc/ex/images/logo400x83.gif +0 -0
- data/doc/ex/images/model.miff +0 -0
- data/doc/ex/images/notimplemented.gif +0 -0
- data/doc/ex/images/smile.miff +0 -0
- data/doc/ex/images/spin.gif +0 -0
- data/doc/ex/implode.rb +34 -0
- data/doc/ex/level.rb +11 -0
- data/doc/ex/level_colors.rb +11 -0
- data/doc/ex/line.rb +41 -0
- data/doc/ex/line01.rb +21 -0
- data/doc/ex/mask.rb +35 -0
- data/doc/ex/matte_fill_to_border.rb +39 -0
- data/doc/ex/matte_floodfill.rb +32 -0
- data/doc/ex/matte_replace.rb +39 -0
- data/doc/ex/median_filter.rb +28 -0
- data/doc/ex/modulate.rb +11 -0
- data/doc/ex/mono.rb +23 -0
- data/doc/ex/morph.rb +25 -0
- data/doc/ex/mosaic.rb +35 -0
- data/doc/ex/motion_blur.rb +11 -0
- data/doc/ex/negate.rb +11 -0
- data/doc/ex/negate_channel.rb +9 -0
- data/doc/ex/nested_rvg.rb +21 -0
- data/doc/ex/nonzero.rb +42 -0
- data/doc/ex/normalize.rb +11 -0
- data/doc/ex/oil_paint.rb +11 -0
- data/doc/ex/opacity.rb +37 -0
- data/doc/ex/ordered_dither.rb +11 -0
- data/doc/ex/path.rb +63 -0
- data/doc/ex/pattern1.rb +25 -0
- data/doc/ex/pattern2.rb +26 -0
- data/doc/ex/polaroid.rb +27 -0
- data/doc/ex/polygon.rb +23 -0
- data/doc/ex/polygon01.rb +21 -0
- data/doc/ex/polyline.rb +22 -0
- data/doc/ex/polyline01.rb +21 -0
- data/doc/ex/posterize.rb +8 -0
- data/doc/ex/preview.rb +8 -0
- data/doc/ex/qbezierpath.rb +52 -0
- data/doc/ex/quad01.rb +34 -0
- data/doc/ex/quantize-m.rb +25 -0
- data/doc/ex/radial_blur.rb +9 -0
- data/doc/ex/raise.rb +8 -0
- data/doc/ex/random_threshold_channel.rb +13 -0
- data/doc/ex/rect01.rb +14 -0
- data/doc/ex/rect02.rb +20 -0
- data/doc/ex/rectangle.rb +34 -0
- data/doc/ex/reduce_noise.rb +28 -0
- data/doc/ex/remap.rb +11 -0
- data/doc/ex/remap_images.rb +19 -0
- data/doc/ex/resize_to_fill.rb +8 -0
- data/doc/ex/resize_to_fit.rb +8 -0
- data/doc/ex/roll.rb +9 -0
- data/doc/ex/rotate.rb +44 -0
- data/doc/ex/rotate_f.rb +14 -0
- data/doc/ex/roundrect.rb +33 -0
- data/doc/ex/rubyname.rb +30 -0
- data/doc/ex/rvg_clippath.rb +12 -0
- data/doc/ex/rvg_linecap.rb +42 -0
- data/doc/ex/rvg_linejoin.rb +40 -0
- data/doc/ex/rvg_opacity.rb +18 -0
- data/doc/ex/rvg_pattern.rb +26 -0
- data/doc/ex/rvg_stroke_dasharray.rb +11 -0
- data/doc/ex/segment.rb +11 -0
- data/doc/ex/sepiatone.rb +7 -0
- data/doc/ex/shade.rb +11 -0
- data/doc/ex/shadow.rb +30 -0
- data/doc/ex/shave.rb +15 -0
- data/doc/ex/shear.rb +10 -0
- data/doc/ex/sketch.rb +17 -0
- data/doc/ex/skewx.rb +51 -0
- data/doc/ex/skewy.rb +47 -0
- data/doc/ex/smile.rb +125 -0
- data/doc/ex/solarize.rb +11 -0
- data/doc/ex/sparse_color.rb +54 -0
- data/doc/ex/splice.rb +8 -0
- data/doc/ex/spread.rb +11 -0
- data/doc/ex/stegano.rb +55 -0
- data/doc/ex/stroke_dasharray.rb +42 -0
- data/doc/ex/stroke_fill.rb +10 -0
- data/doc/ex/stroke_linecap.rb +44 -0
- data/doc/ex/stroke_linejoin.rb +48 -0
- data/doc/ex/stroke_width.rb +49 -0
- data/doc/ex/swirl.rb +17 -0
- data/doc/ex/text.rb +37 -0
- data/doc/ex/text01.rb +16 -0
- data/doc/ex/text_align.rb +36 -0
- data/doc/ex/text_antialias.rb +37 -0
- data/doc/ex/text_styles.rb +19 -0
- data/doc/ex/text_undercolor.rb +28 -0
- data/doc/ex/texture_fill_to_border.rb +34 -0
- data/doc/ex/texture_floodfill.rb +32 -0
- data/doc/ex/texturefill.rb +24 -0
- data/doc/ex/threshold.rb +13 -0
- data/doc/ex/to_blob.rb +13 -0
- data/doc/ex/translate.rb +39 -0
- data/doc/ex/transparent.rb +38 -0
- data/doc/ex/transpose.rb +9 -0
- data/doc/ex/transverse.rb +9 -0
- data/doc/ex/tref01.rb +24 -0
- data/doc/ex/triangle01.rb +15 -0
- data/doc/ex/trim.rb +23 -0
- data/doc/ex/tspan01.rb +17 -0
- data/doc/ex/tspan02.rb +17 -0
- data/doc/ex/tspan03.rb +19 -0
- data/doc/ex/unsharp_mask.rb +28 -0
- data/doc/ex/viewex.rb +33 -0
- data/doc/ex/vignette.rb +12 -0
- data/doc/ex/watermark.rb +27 -0
- data/doc/ex/wave.rb +9 -0
- data/doc/ex/wet_floor.rb +58 -0
- data/doc/ex/writing_mode01.rb +26 -0
- data/doc/ex/writing_mode02.rb +26 -0
- data/doc/ilist.html +2056 -0
- data/doc/image1.html +4680 -0
- data/doc/image2.html +3665 -0
- data/doc/image3.html +4522 -0
- data/doc/imageattrs.html +1638 -0
- data/doc/imusage.html +514 -0
- data/doc/index.html +416 -0
- data/doc/info.html +1499 -0
- data/doc/magick.html +565 -0
- data/doc/optequiv.html +2435 -0
- data/doc/rvg.html +975 -0
- data/doc/rvgclip.html +248 -0
- data/doc/rvggroup.html +305 -0
- data/doc/rvgimage.html +289 -0
- data/doc/rvgpattern.html +475 -0
- data/doc/rvgshape.html +406 -0
- data/doc/rvgstyle.html +270 -0
- data/doc/rvgtext.html +465 -0
- data/doc/rvgtspan.html +238 -0
- data/doc/rvgtut.html +530 -0
- data/doc/rvguse.html +145 -0
- data/doc/rvgxform.html +294 -0
- data/doc/scripts/doc.js +22 -0
- data/doc/scripts/stripeTables.js +23 -0
- data/doc/struct.html +1339 -0
- data/doc/usage.html +1621 -0
- data/examples/constitute.rb +7 -0
- data/examples/crop_with_gravity.rb +42 -0
- data/examples/demo.rb +324 -0
- data/examples/describe.rb +43 -0
- data/examples/find_similar_region.rb +34 -0
- data/examples/histogram.rb +321 -0
- data/examples/identify.rb +185 -0
- data/examples/image_opacity.rb +29 -0
- data/examples/import_export.rb +31 -0
- data/examples/pattern_fill.rb +38 -0
- data/examples/rotating_text.rb +44 -0
- data/examples/spinner.rb +49 -0
- data/examples/thumbnail.rb +64 -0
- data/examples/vignette.rb +78 -0
- data/ext/RMagick/extconf.rb +548 -0
- data/ext/RMagick/rmagick.c +401 -0
- data/ext/RMagick/rmagick.h +1287 -0
- data/ext/RMagick/rmdraw.c +2022 -0
- data/ext/RMagick/rmenum.c +1235 -0
- data/ext/RMagick/rmfill.c +720 -0
- data/ext/RMagick/rmilist.c +1270 -0
- data/ext/RMagick/rmimage.c +15427 -0
- data/ext/RMagick/rminfo.c +2590 -0
- data/ext/RMagick/rmmain.c +1741 -0
- data/ext/RMagick/rmmontage.c +519 -0
- data/ext/RMagick/rmpixel.c +1114 -0
- data/ext/RMagick/rmstruct.c +1124 -0
- data/ext/RMagick/rmutil.c +1754 -0
- data/lib/rmagick.rb +1 -0
- data/lib/rmagick/version.rb +6 -0
- data/lib/rmagick_internal.rb +1947 -0
- data/lib/rvg/clippath.rb +45 -0
- data/lib/rvg/container.rb +122 -0
- data/lib/rvg/deep_equal.rb +52 -0
- data/lib/rvg/describable.rb +47 -0
- data/lib/rvg/embellishable.rb +391 -0
- data/lib/rvg/misc.rb +723 -0
- data/lib/rvg/paint.rb +50 -0
- data/lib/rvg/pathdata.rb +126 -0
- data/lib/rvg/rvg.rb +283 -0
- data/lib/rvg/stretchable.rb +165 -0
- data/lib/rvg/stylable.rb +116 -0
- data/lib/rvg/text.rb +172 -0
- data/lib/rvg/transformable.rb +126 -0
- data/lib/rvg/units.rb +63 -0
- data/rmagick.gemspec +46 -0
- data/spec/rmagick/ImageList1_spec.rb +24 -0
- data/spec/rmagick/draw_spec.rb +156 -0
- data/spec/rmagick/image/blue_shift_spec.rb +16 -0
- data/spec/rmagick/image/composite_spec.rb +140 -0
- data/spec/rmagick/image/constitute_spec.rb +15 -0
- data/spec/rmagick/image/dispatch_spec.rb +18 -0
- data/spec/rmagick/image/from_blob_spec.rb +14 -0
- data/spec/rmagick/image/ping_spec.rb +14 -0
- data/spec/rmagick/image/properties_spec.rb +29 -0
- data/spec/spec_helper.rb +4 -0
- data/test/Image1.rb +565 -0
- data/test/Image2.rb +1304 -0
- data/test/Image3.rb +1030 -0
- data/test/ImageList1.rb +806 -0
- data/test/ImageList2.rb +385 -0
- data/test/Image_attributes.rb +697 -0
- data/test/Import_Export.rb +121 -0
- data/test/Info.rb +345 -0
- data/test/Magick.rb +321 -0
- data/test/Pixel.rb +116 -0
- data/test/Preview.rb +57 -0
- data/test/cmyk.icm +0 -0
- data/test/srgb.icm +0 -0
- data/test/test_all_basic.rb +38 -0
- data/test/tmpnam_test.rb +50 -0
- data/wercker.yml +10 -0
- metadata +509 -0
@@ -0,0 +1,519 @@
|
|
1
|
+
/**************************************************************************//**
|
2
|
+
* Contains Montage class methods.
|
3
|
+
*
|
4
|
+
* Copyright © 2002 - 2009 by Timothy P. Hunter
|
5
|
+
*
|
6
|
+
* Changes since Nov. 2009 copyright © by Benjamin Thomas and Omer Bar-or
|
7
|
+
*
|
8
|
+
* @file rmmontage.c
|
9
|
+
* @version $Id: rmmontage.c,v 1.5 2009/12/20 02:33:33 baror Exp $
|
10
|
+
* @author Tim Hunter
|
11
|
+
******************************************************************************/
|
12
|
+
|
13
|
+
#include "rmagick.h"
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Destory the MontageInfo struct and free the Montage struct.
|
21
|
+
*
|
22
|
+
* No Ruby usage (internal function)
|
23
|
+
*
|
24
|
+
* Notes:
|
25
|
+
* - If the Magick::Montage#texture method wrote a texture file, the file is
|
26
|
+
* deleted here.
|
27
|
+
*
|
28
|
+
* @param obj the montage object
|
29
|
+
*/
|
30
|
+
static void
|
31
|
+
destroy_Montage(void *obj)
|
32
|
+
{
|
33
|
+
Montage *montage = obj;
|
34
|
+
|
35
|
+
// If we saved a temporary texture image, delete it now.
|
36
|
+
if (montage->info && montage->info->texture != NULL)
|
37
|
+
{
|
38
|
+
rm_delete_temp_image(montage->info->texture);
|
39
|
+
magick_free(montage->info->texture);
|
40
|
+
montage->info->texture = NULL;
|
41
|
+
}
|
42
|
+
if (montage->info)
|
43
|
+
{
|
44
|
+
(void) DestroyMontageInfo(montage->info);
|
45
|
+
montage->info = NULL;
|
46
|
+
}
|
47
|
+
xfree(montage);
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Create a new Montage object.
|
53
|
+
*
|
54
|
+
* Ruby usage:
|
55
|
+
* - @verbatim Montage.new @endverbatim
|
56
|
+
*
|
57
|
+
* @param class the Ruby class to use
|
58
|
+
* @return a new Montage object
|
59
|
+
*/
|
60
|
+
VALUE
|
61
|
+
Montage_alloc(VALUE class)
|
62
|
+
{
|
63
|
+
MontageInfo *montage_info;
|
64
|
+
Montage *montage;
|
65
|
+
Info *image_info;
|
66
|
+
VALUE montage_obj;
|
67
|
+
|
68
|
+
// DO NOT call rm_info_new - we don't want to support an Info parm block.
|
69
|
+
image_info = CloneImageInfo(NULL);
|
70
|
+
if (!image_info)
|
71
|
+
{
|
72
|
+
rb_raise(rb_eNoMemError, "not enough memory to initialize Info object");
|
73
|
+
}
|
74
|
+
|
75
|
+
montage_info = CloneMontageInfo(image_info, NULL);
|
76
|
+
(void) (void) DestroyImageInfo(image_info);
|
77
|
+
|
78
|
+
if (!montage_info)
|
79
|
+
{
|
80
|
+
rb_raise(rb_eNoMemError, "not enough memory to initialize Magick::Montage object");
|
81
|
+
}
|
82
|
+
|
83
|
+
montage = ALLOC(Montage);
|
84
|
+
montage->info = montage_info;
|
85
|
+
montage->compose = OverCompositeOp;
|
86
|
+
montage_obj = Data_Wrap_Struct(class, NULL, destroy_Montage, montage);
|
87
|
+
|
88
|
+
RB_GC_GUARD(montage_obj);
|
89
|
+
|
90
|
+
return montage_obj;
|
91
|
+
}
|
92
|
+
|
93
|
+
|
94
|
+
/**
|
95
|
+
* Set background_color value.
|
96
|
+
*
|
97
|
+
* Ruby usage:
|
98
|
+
* - @verbatim Magick::Montage#background_color(color-name) @endverbatim
|
99
|
+
*
|
100
|
+
* @param self this object
|
101
|
+
* @param color the color name
|
102
|
+
* @return self
|
103
|
+
*/
|
104
|
+
VALUE
|
105
|
+
Montage_background_color_eq(VALUE self, VALUE color)
|
106
|
+
{
|
107
|
+
Montage *montage;
|
108
|
+
|
109
|
+
Data_Get_Struct(self, Montage, montage);
|
110
|
+
Color_to_PixelPacket(&montage->info->background_color, color);
|
111
|
+
return self;
|
112
|
+
}
|
113
|
+
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Set border_color value.
|
117
|
+
*
|
118
|
+
* Ruby usage:
|
119
|
+
* - @verbatim Magick::Montage#border_color(color-name) @endverbatim
|
120
|
+
*
|
121
|
+
* @param self this object
|
122
|
+
* @param color the color name
|
123
|
+
* @return self
|
124
|
+
*/
|
125
|
+
VALUE
|
126
|
+
Montage_border_color_eq(VALUE self, VALUE color)
|
127
|
+
{
|
128
|
+
Montage *montage;
|
129
|
+
|
130
|
+
Data_Get_Struct(self, Montage, montage);
|
131
|
+
Color_to_PixelPacket(&montage->info->border_color, color);
|
132
|
+
return self;
|
133
|
+
}
|
134
|
+
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Set border_width value.
|
138
|
+
*
|
139
|
+
* Ruby usage:
|
140
|
+
* - @verbatim Magick::Montage#border_width(width) @endverbatim
|
141
|
+
*
|
142
|
+
* @param self this object
|
143
|
+
* @param width the width
|
144
|
+
* @return self
|
145
|
+
*/
|
146
|
+
VALUE
|
147
|
+
Montage_border_width_eq(VALUE self, VALUE width)
|
148
|
+
{
|
149
|
+
Montage *montage;
|
150
|
+
|
151
|
+
Data_Get_Struct(self, Montage, montage);
|
152
|
+
montage->info->border_width = NUM2ULONG(width);
|
153
|
+
return self;
|
154
|
+
}
|
155
|
+
|
156
|
+
|
157
|
+
/**
|
158
|
+
* Set a composition operator.
|
159
|
+
*
|
160
|
+
* Ruby usage:
|
161
|
+
* - @verbatim Magick::Montage#compose(width) @endverbatim
|
162
|
+
*
|
163
|
+
* @param self this object
|
164
|
+
* @param compose the composition operator
|
165
|
+
* @return self
|
166
|
+
*/
|
167
|
+
VALUE
|
168
|
+
Montage_compose_eq(VALUE self, VALUE compose)
|
169
|
+
{
|
170
|
+
Montage *montage;
|
171
|
+
|
172
|
+
Data_Get_Struct(self, Montage, montage);
|
173
|
+
VALUE_TO_ENUM(compose, montage->compose, CompositeOperator);
|
174
|
+
return self;
|
175
|
+
}
|
176
|
+
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Set filename value.
|
180
|
+
*
|
181
|
+
* Ruby usage:
|
182
|
+
* - @verbatim Magick::Montage#filename(name) @endverbatim
|
183
|
+
*
|
184
|
+
* @param self this object
|
185
|
+
* @param filename the filename
|
186
|
+
* @return self
|
187
|
+
*/
|
188
|
+
VALUE
|
189
|
+
Montage_filename_eq(VALUE self, VALUE filename)
|
190
|
+
{
|
191
|
+
Montage *montage;
|
192
|
+
|
193
|
+
Data_Get_Struct(self, Montage, montage);
|
194
|
+
strncpy(montage->info->filename, StringValuePtr(filename), MaxTextExtent-1);
|
195
|
+
return self;
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
/**
|
200
|
+
* Set fill value.
|
201
|
+
*
|
202
|
+
* Ruby usage:
|
203
|
+
* - @verbatim Magick::Montage#fill(color-name) @endverbatim
|
204
|
+
*
|
205
|
+
* @param self this object
|
206
|
+
* @param color the color name
|
207
|
+
* @return self
|
208
|
+
*/
|
209
|
+
VALUE
|
210
|
+
Montage_fill_eq(VALUE self, VALUE color)
|
211
|
+
{
|
212
|
+
Montage *montage;
|
213
|
+
|
214
|
+
Data_Get_Struct(self, Montage, montage);
|
215
|
+
Color_to_PixelPacket(&montage->info->fill, color);
|
216
|
+
return self;
|
217
|
+
}
|
218
|
+
|
219
|
+
|
220
|
+
/**
|
221
|
+
* Set font value.
|
222
|
+
*
|
223
|
+
* Ruby usage:
|
224
|
+
* - @verbatim Magick::Montage#font(font-name) @endverbatim
|
225
|
+
*
|
226
|
+
* @param self this object
|
227
|
+
* @param font the font name
|
228
|
+
* @return self
|
229
|
+
*/
|
230
|
+
VALUE
|
231
|
+
Montage_font_eq(VALUE self, VALUE font)
|
232
|
+
{
|
233
|
+
Montage *montage;
|
234
|
+
|
235
|
+
Data_Get_Struct(self, Montage, montage);
|
236
|
+
magick_clone_string(&montage->info->font, StringValuePtr(font));
|
237
|
+
|
238
|
+
return self;
|
239
|
+
}
|
240
|
+
|
241
|
+
|
242
|
+
/**
|
243
|
+
* Set frame value.
|
244
|
+
*
|
245
|
+
* Ruby usage:
|
246
|
+
* - @verbatim Magick::Montage#frame(frame-geometry) @endverbatim
|
247
|
+
*
|
248
|
+
* Notes:
|
249
|
+
* - The geometry is a string in the form:
|
250
|
+
* @verbatim <width>x<height>+<outer-bevel-width>+<inner-bevel-width> @endverbatim
|
251
|
+
* or a Geometry object
|
252
|
+
*
|
253
|
+
* @param self this object
|
254
|
+
* @param frame_arg the frame geometry
|
255
|
+
* @return self
|
256
|
+
*/
|
257
|
+
VALUE
|
258
|
+
Montage_frame_eq(VALUE self, VALUE frame_arg)
|
259
|
+
{
|
260
|
+
Montage *montage;
|
261
|
+
VALUE frame;
|
262
|
+
|
263
|
+
Data_Get_Struct(self, Montage, montage);
|
264
|
+
frame = rm_to_s(frame_arg);
|
265
|
+
magick_clone_string(&montage->info->frame, StringValuePtr(frame));
|
266
|
+
|
267
|
+
RB_GC_GUARD(frame);
|
268
|
+
|
269
|
+
return self;
|
270
|
+
}
|
271
|
+
|
272
|
+
|
273
|
+
/**
|
274
|
+
* Set geometry value.
|
275
|
+
*
|
276
|
+
* Ruby usage:
|
277
|
+
* - @verbatim Magick::Montage#geometry(geometry) @endverbatim
|
278
|
+
*
|
279
|
+
* @param self this object
|
280
|
+
* @param geometry_arg the geometry
|
281
|
+
* @return self
|
282
|
+
*/
|
283
|
+
VALUE
|
284
|
+
Montage_geometry_eq(VALUE self, VALUE geometry_arg)
|
285
|
+
{
|
286
|
+
Montage *montage;
|
287
|
+
VALUE geometry;
|
288
|
+
|
289
|
+
Data_Get_Struct(self, Montage, montage);
|
290
|
+
geometry = rm_to_s(geometry_arg);
|
291
|
+
magick_clone_string(&montage->info->geometry, StringValuePtr(geometry));
|
292
|
+
|
293
|
+
RB_GC_GUARD(geometry);
|
294
|
+
|
295
|
+
return self;
|
296
|
+
}
|
297
|
+
|
298
|
+
|
299
|
+
/**
|
300
|
+
* Set gravity value.
|
301
|
+
*
|
302
|
+
* Ruby usage:
|
303
|
+
* - @verbatim Magick::Montage#gravity(gravity-type) @endverbatim
|
304
|
+
*
|
305
|
+
* @param self this object
|
306
|
+
* @param gravity the gravity type
|
307
|
+
* @return self
|
308
|
+
*/
|
309
|
+
VALUE
|
310
|
+
Montage_gravity_eq(VALUE self, VALUE gravity)
|
311
|
+
{
|
312
|
+
Montage *montage;
|
313
|
+
|
314
|
+
Data_Get_Struct(self, Montage, montage);
|
315
|
+
VALUE_TO_ENUM(gravity, montage->info->gravity, GravityType);
|
316
|
+
return self;
|
317
|
+
}
|
318
|
+
|
319
|
+
|
320
|
+
/**
|
321
|
+
* Initialize a Montage object. Does nothing currently.
|
322
|
+
*
|
323
|
+
* Ruby usage:
|
324
|
+
* - @verbatim Magick::Montage#initialize @endverbatim
|
325
|
+
*
|
326
|
+
* @param self this object
|
327
|
+
* @return self
|
328
|
+
*/
|
329
|
+
VALUE
|
330
|
+
Montage_initialize(VALUE self)
|
331
|
+
{
|
332
|
+
// Nothing to do!
|
333
|
+
return self;
|
334
|
+
}
|
335
|
+
|
336
|
+
|
337
|
+
/**
|
338
|
+
* Set matte_color value.
|
339
|
+
*
|
340
|
+
* Ruby usage:
|
341
|
+
* - @verbatim Magick::Montage#matte_color(color-name) @endverbatim
|
342
|
+
*
|
343
|
+
* @param self this object
|
344
|
+
* @param color the color name
|
345
|
+
* @return self
|
346
|
+
*/
|
347
|
+
VALUE
|
348
|
+
Montage_matte_color_eq(VALUE self, VALUE color)
|
349
|
+
{
|
350
|
+
Montage *montage;
|
351
|
+
|
352
|
+
Data_Get_Struct(self, Montage, montage);
|
353
|
+
Color_to_PixelPacket(&montage->info->matte_color, color);
|
354
|
+
return self;
|
355
|
+
}
|
356
|
+
|
357
|
+
|
358
|
+
/**
|
359
|
+
* Set pointsize value.
|
360
|
+
*
|
361
|
+
* Ruby usage:
|
362
|
+
* - @verbatim Magick::Montage#pointsize= @endverbatim
|
363
|
+
*
|
364
|
+
* @param self this object
|
365
|
+
* @param size the point size
|
366
|
+
* @return self
|
367
|
+
*/
|
368
|
+
VALUE
|
369
|
+
Montage_pointsize_eq(VALUE self, VALUE size)
|
370
|
+
{
|
371
|
+
Montage *montage;
|
372
|
+
|
373
|
+
Data_Get_Struct(self, Montage, montage);
|
374
|
+
montage->info->pointsize = NUM2DBL(size);
|
375
|
+
return self;
|
376
|
+
}
|
377
|
+
|
378
|
+
|
379
|
+
/**
|
380
|
+
* Set shadow value.
|
381
|
+
*
|
382
|
+
* Ruby usage:
|
383
|
+
* - @verbatim Magick::Montage#shadow= @endverbatim
|
384
|
+
*
|
385
|
+
* @param self this object
|
386
|
+
* @param shadow the shadow
|
387
|
+
* @return self
|
388
|
+
*/
|
389
|
+
VALUE
|
390
|
+
Montage_shadow_eq(VALUE self, VALUE shadow)
|
391
|
+
{
|
392
|
+
Montage *montage;
|
393
|
+
|
394
|
+
Data_Get_Struct(self, Montage, montage);
|
395
|
+
montage->info->shadow = (MagickBooleanType) RTEST(shadow);
|
396
|
+
return self;
|
397
|
+
}
|
398
|
+
|
399
|
+
|
400
|
+
/**
|
401
|
+
* Set stroke value.
|
402
|
+
*
|
403
|
+
* Ruby usage:
|
404
|
+
* - @verbatim Magick::Montage#stroke(color-name) @endverbatim
|
405
|
+
*
|
406
|
+
* @param self this object
|
407
|
+
* @param color the color name
|
408
|
+
* @return self
|
409
|
+
*/
|
410
|
+
VALUE
|
411
|
+
Montage_stroke_eq(VALUE self, VALUE color)
|
412
|
+
{
|
413
|
+
Montage *montage;
|
414
|
+
|
415
|
+
Data_Get_Struct(self, Montage, montage);
|
416
|
+
Color_to_PixelPacket(&montage->info->stroke, color);
|
417
|
+
return self;
|
418
|
+
}
|
419
|
+
|
420
|
+
|
421
|
+
/**
|
422
|
+
* Set texture value.
|
423
|
+
*
|
424
|
+
* Ruby usage:
|
425
|
+
* - @verbatim Montage#texture(texture-image) @endverbatim
|
426
|
+
*
|
427
|
+
* @param self this object
|
428
|
+
* @param texture the texture image
|
429
|
+
* @return self
|
430
|
+
*/
|
431
|
+
VALUE
|
432
|
+
Montage_texture_eq(VALUE self, VALUE texture)
|
433
|
+
{
|
434
|
+
Montage *montage;
|
435
|
+
Image *texture_image;
|
436
|
+
char temp_name[MaxTextExtent];
|
437
|
+
|
438
|
+
Data_Get_Struct(self, Montage, montage);
|
439
|
+
|
440
|
+
// If we had a previously defined temp texture image,
|
441
|
+
// remove it now in preparation for this new one.
|
442
|
+
if (montage->info->texture)
|
443
|
+
{
|
444
|
+
rm_delete_temp_image(montage->info->texture);
|
445
|
+
magick_free(montage->info->texture);
|
446
|
+
montage->info->texture = NULL;
|
447
|
+
}
|
448
|
+
|
449
|
+
texture = rm_cur_image(texture);
|
450
|
+
texture_image = rm_check_destroyed(texture);
|
451
|
+
|
452
|
+
// Write a temp copy of the image & save its name.
|
453
|
+
rm_write_temp_image(texture_image, temp_name);
|
454
|
+
magick_clone_string(&montage->info->texture, temp_name);
|
455
|
+
|
456
|
+
return self;
|
457
|
+
}
|
458
|
+
|
459
|
+
|
460
|
+
/**
|
461
|
+
* Set tile value.
|
462
|
+
*
|
463
|
+
* Ruby usage:
|
464
|
+
* - @verbatim Magick::Montage#tile(tile) @endverbatim
|
465
|
+
*
|
466
|
+
* @param self this object
|
467
|
+
* @param tile_arg the tile
|
468
|
+
* @return self
|
469
|
+
*/
|
470
|
+
VALUE
|
471
|
+
Montage_tile_eq(VALUE self, VALUE tile_arg)
|
472
|
+
{
|
473
|
+
Montage *montage;
|
474
|
+
VALUE tile;
|
475
|
+
|
476
|
+
Data_Get_Struct(self, Montage, montage);
|
477
|
+
tile = rm_to_s(tile_arg);
|
478
|
+
magick_clone_string(&montage->info->tile, StringValuePtr(tile));
|
479
|
+
|
480
|
+
RB_GC_GUARD(tile);
|
481
|
+
|
482
|
+
return self;
|
483
|
+
}
|
484
|
+
|
485
|
+
|
486
|
+
/**
|
487
|
+
* Set title value.
|
488
|
+
*
|
489
|
+
* Ruby usage:
|
490
|
+
* - @verbatim Magick::Montage#title(title) @endverbatim
|
491
|
+
*
|
492
|
+
* @param self this object
|
493
|
+
* @param title the title
|
494
|
+
* @return self
|
495
|
+
*/
|
496
|
+
VALUE
|
497
|
+
Montage_title_eq(VALUE self, VALUE title)
|
498
|
+
{
|
499
|
+
Montage *montage;
|
500
|
+
|
501
|
+
Data_Get_Struct(self, Montage, montage);
|
502
|
+
magick_clone_string(&montage->info->title, StringValuePtr(title));
|
503
|
+
return self;
|
504
|
+
}
|
505
|
+
|
506
|
+
|
507
|
+
/**
|
508
|
+
* Return a new Magick::Montage object.
|
509
|
+
*
|
510
|
+
* No Ruby usage (internal function)
|
511
|
+
*
|
512
|
+
* @return a new Magick::Montage object
|
513
|
+
*/
|
514
|
+
VALUE
|
515
|
+
rm_montage_new(void)
|
516
|
+
{
|
517
|
+
return Montage_initialize(Montage_alloc(Class_Montage));
|
518
|
+
}
|
519
|
+
|