From: cristy Date: Sun, 30 Oct 2011 02:28:03 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~6710 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a3ce7f37eeb9deabe9134cb75cd69e7dae75301;p=imagemagick --- diff --git a/Makefile.in b/Makefile.in index 8814a0079..b7c82954e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -481,24 +481,24 @@ am__MagickCore_libMagickCore_la_SOURCES_DIST = \ coders/map.c coders/mat.c coders/matte.c coders/meta.c \ coders/miff.c coders/mono.c coders/mpc.c coders/mpeg.c \ coders/mpr.c coders/msl.c coders/mtv.c coders/mvg.c \ - coders/null.c coders/otb.c coders/palm.c coders/pango.c \ - coders/pattern.c coders/pcd.c coders/pcl.c coders/pcx.c \ - coders/pdb.c coders/pdf.c coders/pes.c coders/pict.c \ - coders/pix.c coders/plasma.c coders/pnm.c coders/preview.c \ - coders/ps.c coders/ps2.c coders/ps3.c coders/psd.c \ - coders/pwp.c coders/raw.c coders/rgb.c coders/rla.c \ - coders/rle.c coders/scr.c coders/sct.c coders/sfw.c \ - coders/sgi.c coders/stegano.c coders/sun.c coders/svg.c \ - coders/tga.c coders/thumbnail.c coders/tile.c coders/tim.c \ - coders/ttf.c coders/txt.c coders/uil.c coders/url.c \ - coders/uyvy.c coders/vicar.c coders/vid.c coders/viff.c \ - coders/wbmp.c coders/wpg.c coders/xbm.c coders/xc.c \ - coders/xcf.c coders/xpm.c coders/xps.c coders/ycbcr.c \ - coders/yuv.c coders/dps.c coders/djvu.c coders/exr.c \ - coders/fpx.c coders/clipboard.c coders/emf.c coders/jbig.c \ - coders/jpeg.c coders/jp2.c coders/png.c coders/ept.c \ - coders/tiff.c coders/webp.c coders/wmf.c coders/x.c \ - coders/xwd.c filters/analyze.c + coders/null.c coders/otb.c coders/palm.c coders/pattern.c \ + coders/pcd.c coders/pcl.c coders/pcx.c coders/pdb.c \ + coders/pdf.c coders/pes.c coders/pict.c coders/pix.c \ + coders/plasma.c coders/pnm.c coders/preview.c coders/ps.c \ + coders/ps2.c coders/ps3.c coders/psd.c coders/pwp.c \ + coders/raw.c coders/rgb.c coders/rla.c coders/rle.c \ + coders/scr.c coders/sct.c coders/sfw.c coders/sgi.c \ + coders/stegano.c coders/sun.c coders/svg.c coders/tga.c \ + coders/thumbnail.c coders/tile.c coders/tim.c coders/ttf.c \ + coders/txt.c coders/uil.c coders/url.c coders/uyvy.c \ + coders/vicar.c coders/vid.c coders/viff.c coders/wbmp.c \ + coders/wpg.c coders/xbm.c coders/xc.c coders/xcf.c \ + coders/xpm.c coders/xps.c coders/ycbcr.c coders/yuv.c \ + coders/dps.c coders/djvu.c coders/exr.c coders/fpx.c \ + coders/clipboard.c coders/emf.c coders/jbig.c coders/jpeg.c \ + coders/jp2.c coders/png.c coders/ept.c coders/tiff.c \ + coders/webp.c coders/wmf.c coders/x.c coders/xwd.c \ + filters/analyze.c am__objects_1 = MagickCore/MagickCore_libMagickCore_la-accelerate.lo \ MagickCore/MagickCore_libMagickCore_la-animate.lo \ MagickCore/MagickCore_libMagickCore_la-annotate.lo \ @@ -663,7 +663,6 @@ am__objects_16 = coders/MagickCore_libMagickCore_la-aai.lo \ coders/MagickCore_libMagickCore_la-null.lo \ coders/MagickCore_libMagickCore_la-otb.lo \ coders/MagickCore_libMagickCore_la-palm.lo \ - coders/MagickCore_libMagickCore_la-pango.lo \ coders/MagickCore_libMagickCore_la-pattern.lo \ coders/MagickCore_libMagickCore_la-pcd.lo \ coders/MagickCore_libMagickCore_la-pcl.lo \ @@ -811,7 +810,8 @@ coders_cals_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_CFLAGS) $(CFLAGS) $(coders_cals_la_LDFLAGS) $(LDFLAGS) -o \ $@ @WITH_MODULES_TRUE@am_coders_cals_la_rpath = -rpath $(codersdir) -coders_caption_la_DEPENDENCIES = $(MAGICKCORE_LIBS) +coders_caption_la_DEPENDENCIES = $(MAGICKCORE_LIBS) \ + $(am__DEPENDENCIES_1) am_coders_caption_la_OBJECTS = coders/coders_caption_la-caption.lo coders_caption_la_OBJECTS = $(am_coders_caption_la_OBJECTS) coders_caption_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ @@ -1244,15 +1244,6 @@ coders_palm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_CFLAGS) $(CFLAGS) $(coders_palm_la_LDFLAGS) $(LDFLAGS) -o \ $@ @WITH_MODULES_TRUE@am_coders_palm_la_rpath = -rpath $(codersdir) -coders_pango_la_DEPENDENCIES = $(MAGICKCORE_LIBS) \ - $(am__DEPENDENCIES_1) -am_coders_pango_la_OBJECTS = coders/coders_pango_la-pango.lo -coders_pango_la_OBJECTS = $(am_coders_pango_la_OBJECTS) -coders_pango_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(coders_pango_la_LDFLAGS) $(LDFLAGS) \ - -o $@ -@WITH_MODULES_TRUE@am_coders_pango_la_rpath = -rpath $(codersdir) coders_pattern_la_DEPENDENCIES = $(MAGICKCORE_LIBS) am_coders_pattern_la_OBJECTS = coders/coders_pattern_la-pattern.lo coders_pattern_la_OBJECTS = $(am_coders_pattern_la_OBJECTS) @@ -2041,39 +2032,39 @@ SOURCES = $(Magick___lib_libMagick___la_SOURCES) \ $(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \ $(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \ $(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \ - $(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \ - $(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \ - $(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \ - $(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \ - $(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \ - $(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \ - $(coders_pnm_la_SOURCES) $(coders_preview_la_SOURCES) \ - $(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \ - $(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \ - $(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \ - $(coders_rgb_la_SOURCES) $(coders_rla_la_SOURCES) \ - $(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \ - $(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \ - $(coders_sgi_la_SOURCES) $(coders_stegano_la_SOURCES) \ - $(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \ - $(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \ - $(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \ - $(coders_tim_la_SOURCES) $(coders_ttf_la_SOURCES) \ - $(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \ - $(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \ - $(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \ - $(coders_viff_la_SOURCES) $(coders_wbmp_la_SOURCES) \ - $(coders_webp_la_SOURCES) $(coders_wmf_la_SOURCES) \ - $(coders_wpg_la_SOURCES) $(coders_x_la_SOURCES) \ - $(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \ - $(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \ - $(coders_xps_la_SOURCES) $(coders_xwd_la_SOURCES) \ - $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \ - $(filters_analyze_la_SOURCES) $(ltdl_dld_link_la_SOURCES) \ - $(ltdl_dlopen_la_SOURCES) $(ltdl_dyld_la_SOURCES) \ - $(ltdl_libltdl_la_SOURCES) $(ltdl_libltdlc_la_SOURCES) \ - $(ltdl_load_add_on_la_SOURCES) $(ltdl_loadlibrary_la_SOURCES) \ - $(ltdl_shl_load_la_SOURCES) $(Magick___demo_analyze_SOURCES) \ + $(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \ + $(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \ + $(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \ + $(coders_pes_la_SOURCES) $(coders_pict_la_SOURCES) \ + $(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \ + $(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \ + $(coders_preview_la_SOURCES) $(coders_ps_la_SOURCES) \ + $(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \ + $(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \ + $(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \ + $(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \ + $(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \ + $(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \ + $(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \ + $(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \ + $(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \ + $(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \ + $(coders_ttf_la_SOURCES) $(coders_txt_la_SOURCES) \ + $(coders_uil_la_SOURCES) $(coders_url_la_SOURCES) \ + $(coders_uyvy_la_SOURCES) $(coders_vicar_la_SOURCES) \ + $(coders_vid_la_SOURCES) $(coders_viff_la_SOURCES) \ + $(coders_wbmp_la_SOURCES) $(coders_webp_la_SOURCES) \ + $(coders_wmf_la_SOURCES) $(coders_wpg_la_SOURCES) \ + $(coders_x_la_SOURCES) $(coders_xbm_la_SOURCES) \ + $(coders_xc_la_SOURCES) $(coders_xcf_la_SOURCES) \ + $(coders_xpm_la_SOURCES) $(coders_xps_la_SOURCES) \ + $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \ + $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \ + $(ltdl_dld_link_la_SOURCES) $(ltdl_dlopen_la_SOURCES) \ + $(ltdl_dyld_la_SOURCES) $(ltdl_libltdl_la_SOURCES) \ + $(ltdl_libltdlc_la_SOURCES) $(ltdl_load_add_on_la_SOURCES) \ + $(ltdl_loadlibrary_la_SOURCES) $(ltdl_shl_load_la_SOURCES) \ + $(Magick___demo_analyze_SOURCES) \ $(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \ $(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \ $(Magick___demo_gravity_SOURCES) \ @@ -2132,39 +2123,39 @@ DIST_SOURCES = $(Magick___lib_libMagick___la_SOURCES) \ $(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \ $(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \ $(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \ - $(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \ - $(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \ - $(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \ - $(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \ - $(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \ - $(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \ - $(coders_pnm_la_SOURCES) $(coders_preview_la_SOURCES) \ - $(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \ - $(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \ - $(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \ - $(coders_rgb_la_SOURCES) $(coders_rla_la_SOURCES) \ - $(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \ - $(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \ - $(coders_sgi_la_SOURCES) $(coders_stegano_la_SOURCES) \ - $(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \ - $(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \ - $(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \ - $(coders_tim_la_SOURCES) $(coders_ttf_la_SOURCES) \ - $(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \ - $(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \ - $(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \ - $(coders_viff_la_SOURCES) $(coders_wbmp_la_SOURCES) \ - $(coders_webp_la_SOURCES) $(coders_wmf_la_SOURCES) \ - $(coders_wpg_la_SOURCES) $(coders_x_la_SOURCES) \ - $(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \ - $(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \ - $(coders_xps_la_SOURCES) $(coders_xwd_la_SOURCES) \ - $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \ - $(filters_analyze_la_SOURCES) $(ltdl_dld_link_la_SOURCES) \ - $(ltdl_dlopen_la_SOURCES) $(ltdl_dyld_la_SOURCES) \ - $(ltdl_libltdl_la_SOURCES) $(ltdl_libltdlc_la_SOURCES) \ - $(ltdl_load_add_on_la_SOURCES) $(ltdl_loadlibrary_la_SOURCES) \ - $(ltdl_shl_load_la_SOURCES) $(Magick___demo_analyze_SOURCES) \ + $(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \ + $(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \ + $(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \ + $(coders_pes_la_SOURCES) $(coders_pict_la_SOURCES) \ + $(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \ + $(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \ + $(coders_preview_la_SOURCES) $(coders_ps_la_SOURCES) \ + $(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \ + $(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \ + $(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \ + $(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \ + $(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \ + $(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \ + $(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \ + $(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \ + $(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \ + $(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \ + $(coders_ttf_la_SOURCES) $(coders_txt_la_SOURCES) \ + $(coders_uil_la_SOURCES) $(coders_url_la_SOURCES) \ + $(coders_uyvy_la_SOURCES) $(coders_vicar_la_SOURCES) \ + $(coders_vid_la_SOURCES) $(coders_viff_la_SOURCES) \ + $(coders_wbmp_la_SOURCES) $(coders_webp_la_SOURCES) \ + $(coders_wmf_la_SOURCES) $(coders_wpg_la_SOURCES) \ + $(coders_x_la_SOURCES) $(coders_xbm_la_SOURCES) \ + $(coders_xc_la_SOURCES) $(coders_xcf_la_SOURCES) \ + $(coders_xpm_la_SOURCES) $(coders_xps_la_SOURCES) \ + $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \ + $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \ + $(ltdl_dld_link_la_SOURCES) $(ltdl_dlopen_la_SOURCES) \ + $(ltdl_dyld_la_SOURCES) $(ltdl_libltdl_la_SOURCES) \ + $(ltdl_libltdlc_la_SOURCES) $(ltdl_load_add_on_la_SOURCES) \ + $(ltdl_loadlibrary_la_SOURCES) $(ltdl_shl_load_la_SOURCES) \ + $(Magick___demo_analyze_SOURCES) \ $(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \ $(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \ $(Magick___demo_gravity_SOURCES) \ @@ -2959,7 +2950,6 @@ MAGICKCORE_CODER_SRCS = \ coders/null.c \ coders/otb.c \ coders/palm.c \ - coders/pango.c \ coders/pattern.c \ coders/pcd.c \ coders/pcl.c \ @@ -3077,7 +3067,6 @@ MAGICKCORE_CODER_SRCS = \ @WITH_MODULES_TRUE@ coders/null.la \ @WITH_MODULES_TRUE@ coders/otb.la \ @WITH_MODULES_TRUE@ coders/palm.la \ -@WITH_MODULES_TRUE@ coders/pango.la \ @WITH_MODULES_TRUE@ coders/pattern.la \ @WITH_MODULES_TRUE@ coders/pcd.la \ @WITH_MODULES_TRUE@ coders/pcl.la \ @@ -3186,9 +3175,9 @@ coders_cals_la_LIBADD = $(MAGICKCORE_LIBS) # CAPTION coder module coders_caption_la_SOURCES = coders/caption.c -coders_caption_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) +coders_caption_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) $(PANGO_CFLAGS) coders_caption_la_LDFLAGS = $(MODULECOMMONFLAGS) -coders_caption_la_LIBADD = $(MAGICKCORE_LIBS) +coders_caption_la_LIBADD = $(MAGICKCORE_LIBS) $(PANGO_LIBS) # CINEON coder module coders_cin_la_SOURCES = coders/cin.c @@ -3514,12 +3503,6 @@ coders_palm_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) coders_palm_la_LDFLAGS = $(MODULECOMMONFLAGS) coders_palm_la_LIBADD = $(MAGICKCORE_LIBS) -# PANGO coder module -coders_pango_la_SOURCES = coders/pango.c -coders_pango_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) $(PANGO_CFLAGS) -coders_pango_la_LDFLAGS = $(MODULECOMMONFLAGS) -coders_pango_la_LIBADD = $(MAGICKCORE_LIBS) $(PANGO_LIBS) - # Pattern module coders_pattern_la_SOURCES = coders/pattern.c coders_pattern_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) @@ -5475,8 +5458,6 @@ coders/MagickCore_libMagickCore_la-otb.lo: coders/$(am__dirstamp) \ coders/$(DEPDIR)/$(am__dirstamp) coders/MagickCore_libMagickCore_la-palm.lo: coders/$(am__dirstamp) \ coders/$(DEPDIR)/$(am__dirstamp) -coders/MagickCore_libMagickCore_la-pango.lo: coders/$(am__dirstamp) \ - coders/$(DEPDIR)/$(am__dirstamp) coders/MagickCore_libMagickCore_la-pattern.lo: coders/$(am__dirstamp) \ coders/$(DEPDIR)/$(am__dirstamp) coders/MagickCore_libMagickCore_la-pcd.lo: coders/$(am__dirstamp) \ @@ -5936,10 +5917,6 @@ coders/coders_palm_la-palm.lo: coders/$(am__dirstamp) \ coders/$(DEPDIR)/$(am__dirstamp) coders/palm.la: $(coders_palm_la_OBJECTS) $(coders_palm_la_DEPENDENCIES) coders/$(am__dirstamp) $(AM_V_CCLD)$(coders_palm_la_LINK) $(am_coders_palm_la_rpath) $(coders_palm_la_OBJECTS) $(coders_palm_la_LIBADD) $(LIBS) -coders/coders_pango_la-pango.lo: coders/$(am__dirstamp) \ - coders/$(DEPDIR)/$(am__dirstamp) -coders/pango.la: $(coders_pango_la_OBJECTS) $(coders_pango_la_DEPENDENCIES) coders/$(am__dirstamp) - $(AM_V_CCLD)$(coders_pango_la_LINK) $(am_coders_pango_la_rpath) $(coders_pango_la_OBJECTS) $(coders_pango_la_LIBADD) $(LIBS) coders/coders_pattern_la-pattern.lo: coders/$(am__dirstamp) \ coders/$(DEPDIR)/$(am__dirstamp) coders/pattern.la: $(coders_pattern_la_OBJECTS) $(coders_pattern_la_DEPENDENCIES) coders/$(am__dirstamp) @@ -6922,8 +6899,6 @@ mostlyclean-compile: -rm -f coders/MagickCore_libMagickCore_la-otb.lo -rm -f coders/MagickCore_libMagickCore_la-palm.$(OBJEXT) -rm -f coders/MagickCore_libMagickCore_la-palm.lo - -rm -f coders/MagickCore_libMagickCore_la-pango.$(OBJEXT) - -rm -f coders/MagickCore_libMagickCore_la-pango.lo -rm -f coders/MagickCore_libMagickCore_la-pattern.$(OBJEXT) -rm -f coders/MagickCore_libMagickCore_la-pattern.lo -rm -f coders/MagickCore_libMagickCore_la-pcd.$(OBJEXT) @@ -7158,8 +7133,6 @@ mostlyclean-compile: -rm -f coders/coders_otb_la-otb.lo -rm -f coders/coders_palm_la-palm.$(OBJEXT) -rm -f coders/coders_palm_la-palm.lo - -rm -f coders/coders_pango_la-pango.$(OBJEXT) - -rm -f coders/coders_pango_la-pango.lo -rm -f coders/coders_pattern_la-pattern.$(OBJEXT) -rm -f coders/coders_pattern_la-pattern.lo -rm -f coders/coders_pcd_la-pcd.$(OBJEXT) @@ -7537,7 +7510,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-null.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-otb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-palm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-pango.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-pcd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_la-pcl.Plo@am__quote@ @@ -7655,7 +7627,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_null_la-null.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_otb_la-otb.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_palm_la-palm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_pango_la-pango.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_pattern_la-pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_pcd_la-pcd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_pcl_la-pcl.Plo@am__quote@ @@ -8899,14 +8870,6 @@ coders/MagickCore_libMagickCore_la-palm.lo: coders/palm.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_la-palm.lo `test -f 'coders/palm.c' || echo '$(srcdir)/'`coders/palm.c -coders/MagickCore_libMagickCore_la-pango.lo: coders/pango.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_la-pango.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_la-pango.Tpo -c -o coders/MagickCore_libMagickCore_la-pango.lo `test -f 'coders/pango.c' || echo '$(srcdir)/'`coders/pango.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_la-pango.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_la-pango.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coders/pango.c' object='coders/MagickCore_libMagickCore_la-pango.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_la-pango.lo `test -f 'coders/pango.c' || echo '$(srcdir)/'`coders/pango.c - coders/MagickCore_libMagickCore_la-pattern.lo: coders/pattern.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_la-pattern.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_la-pattern.Tpo -c -o coders/MagickCore_libMagickCore_la-pattern.lo `test -f 'coders/pattern.c' || echo '$(srcdir)/'`coders/pattern.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_la-pattern.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_la-pattern.Plo @@ -10099,14 +10062,6 @@ coders/coders_palm_la-palm.lo: coders/palm.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_palm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/coders_palm_la-palm.lo `test -f 'coders/palm.c' || echo '$(srcdir)/'`coders/palm.c -coders/coders_pango_la-pango.lo: coders/pango.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_pango_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/coders_pango_la-pango.lo -MD -MP -MF coders/$(DEPDIR)/coders_pango_la-pango.Tpo -c -o coders/coders_pango_la-pango.lo `test -f 'coders/pango.c' || echo '$(srcdir)/'`coders/pango.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/coders_pango_la-pango.Tpo coders/$(DEPDIR)/coders_pango_la-pango.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coders/pango.c' object='coders/coders_pango_la-pango.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_pango_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/coders_pango_la-pango.lo `test -f 'coders/pango.c' || echo '$(srcdir)/'`coders/pango.c - coders/coders_pattern_la-pattern.lo: coders/pattern.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_pattern_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/coders_pattern_la-pattern.lo -MD -MP -MF coders/$(DEPDIR)/coders_pattern_la-pattern.Tpo -c -o coders/coders_pattern_la-pattern.lo `test -f 'coders/pattern.c' || echo '$(srcdir)/'`coders/pattern.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/coders_pattern_la-pattern.Tpo coders/$(DEPDIR)/coders_pattern_la-pattern.Plo diff --git a/coders/Makefile.am b/coders/Makefile.am index e4a37f2ae..a54127b79 100644 --- a/coders/Makefile.am +++ b/coders/Makefile.am @@ -135,7 +135,6 @@ MAGICKCORE_CODER_SRCS = \ coders/null.c \ coders/otb.c \ coders/palm.c \ - coders/pango.c \ coders/pattern.c \ coders/pcd.c \ coders/pcl.c \ @@ -253,7 +252,6 @@ coders_LTLIBRARIES = \ coders/null.la \ coders/otb.la \ coders/palm.la \ - coders/pango.la \ coders/pattern.la \ coders/pcd.la \ coders/pcl.la \ @@ -357,16 +355,16 @@ coders_braille_la_LDFLAGS = $(MODULECOMMONFLAGS) coders_braille_la_LIBADD = $(MAGICKCORE_LIBS) # CALS coder module -coders_cals_la_SOURCES = coders/cals.c -coders_cals_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) -coders_cals_la_LDFLAGS = $(MODULECOMMONFLAGS) -coders_cals_la_LIBADD = $(MAGICKCORE_LIBS) +coders_cals_la_SOURCES = coders/cals.c +coders_cals_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) +coders_cals_la_LDFLAGS = $(MODULECOMMONFLAGS) +coders_cals_la_LIBADD = $(MAGICKCORE_LIBS) # CAPTION coder module coders_caption_la_SOURCES = coders/caption.c -coders_caption_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) +coders_caption_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) $(PANGO_CFLAGS) coders_caption_la_LDFLAGS = $(MODULECOMMONFLAGS) -coders_caption_la_LIBADD = $(MAGICKCORE_LIBS) +coders_caption_la_LIBADD = $(MAGICKCORE_LIBS) $(PANGO_LIBS) # CINEON coder module coders_cin_la_SOURCES = coders/cin.c @@ -692,13 +690,6 @@ coders_palm_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) coders_palm_la_LDFLAGS = $(MODULECOMMONFLAGS) coders_palm_la_LIBADD = $(MAGICKCORE_LIBS) -# PANGO coder module -coders_pango_la_SOURCES = coders/pango.c -coders_pango_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) $(PANGO_CFLAGS) -coders_pango_la_LDFLAGS = $(MODULECOMMONFLAGS) -coders_pango_la_LIBADD = $(MAGICKCORE_LIBS) $(PANGO_LIBS) - - # Pattern module coders_pattern_la_SOURCES = coders/pattern.c coders_pattern_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS) diff --git a/coders/caption.c b/coders/caption.c index 0f7134c9f..ac8c18cb5 100644 --- a/coders/caption.c +++ b/coders/caption.c @@ -43,7 +43,9 @@ #include "MagickCore/annotate.h" #include "MagickCore/blob.h" #include "MagickCore/blob-private.h" +#include "MagickCore/composite-private.h" #include "MagickCore/draw.h" +#include "MagickCore/draw-private.h" #include "MagickCore/exception.h" #include "MagickCore/exception-private.h" #include "MagickCore/image.h" @@ -51,12 +53,19 @@ #include "MagickCore/list.h" #include "MagickCore/magick.h" #include "MagickCore/memory_.h" +#include "MagickCore/module.h" #include "MagickCore/option.h" #include "MagickCore/property.h" #include "MagickCore/quantum-private.h" #include "MagickCore/static.h" #include "MagickCore/string_.h" -#include "MagickCore/module.h" +#include "MagickCore/string-private.h" +#include "MagickCore/utility.h" +#if defined(MAGICKCORE_PANGOFT2_DELEGATE) +#include +#include +#include +#endif /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -85,6 +94,294 @@ % o exception: return any errors or warnings in this structure. % */ +#if defined(MAGICKCORE_PANGOFT2_DELEGATE) +static void PangoSubstitute(FcPattern *pattern,void *context) +{ + const char + *option; + + option=(const char *) context; + if (option == (const char *) NULL) + return; + FcPatternDel(pattern,FC_HINTING); + FcPatternAddBool(pattern, FC_HINTING,LocaleCompare(option,"none") != 0); + FcPatternDel(pattern,FC_AUTOHINT); + FcPatternAddBool(pattern,FC_AUTOHINT,LocaleCompare(option,"auto") == 0); +} + +static Image *ReadCAPTIONImage(const ImageInfo *image_info, + ExceptionInfo *exception) +{ + char + *caption, + *property; + + const char + *option; + + DrawInfo + *draw_info; + + FT_Bitmap + *canvas; + + Image + *image; + + PangoAlignment + align; + + PangoContext + *context; + + PangoFontDescription + *description; + + PangoFontMap + *fontmap; + + PangoGravity + gravity; + + PangoLayout + *layout; + + PangoRectangle + extent; + + PixelInfo + fill_color; + + RectangleInfo + page; + + register Quantum + *q; + + register unsigned char + *p; + + ssize_t + y; + + /* + Initialize Image structure. + */ + assert(image_info != (const ImageInfo *) NULL); + assert(image_info->signature == MagickSignature); + if (image_info->debug != MagickFalse) + (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", + image_info->filename); + assert(exception != (ExceptionInfo *) NULL); + assert(exception->signature == MagickSignature); + image=AcquireImage(image_info,exception); + (void) ResetImagePage(image,"0x0+0+0"); + /* + Get context. + */ + fontmap=(PangoFontMap *) pango_ft2_font_map_new(); + pango_ft2_font_map_set_resolution((PangoFT2FontMap *) fontmap, + image->resolution.x,image->resolution.y); + option=GetImageOption(image_info,"caption:hinting"); + pango_ft2_font_map_set_default_substitute((PangoFT2FontMap *) fontmap, + PangoSubstitute,(char *) option,NULL); + context=pango_font_map_create_context(fontmap); + option=GetImageOption(image_info,"caption:language"); + if (option != (const char *) NULL) + pango_context_set_language(context,pango_language_from_string(option)); + draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL); + pango_context_set_base_dir(context,draw_info->direction == + RightToLeftDirection ? PANGO_DIRECTION_RTL : PANGO_DIRECTION_LTR); + switch (draw_info->gravity) + { + case NorthGravity: gravity=PANGO_GRAVITY_NORTH; break; + case WestGravity: gravity=PANGO_GRAVITY_WEST; break; + case EastGravity: gravity=PANGO_GRAVITY_EAST; break; + case SouthGravity: gravity=PANGO_GRAVITY_SOUTH; break; + default: gravity=PANGO_GRAVITY_AUTO; break; + } + pango_context_set_base_gravity(context,gravity); + option=GetImageOption(image_info,"caption:gravity-hint"); + if (option != (const char *) NULL) + { + if (LocaleCompare(option,"line") == 0) + pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_LINE); + if (LocaleCompare(option,"natural") == 0) + pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_NATURAL); + if (LocaleCompare(option,"strong") == 0) + pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_STRONG); + } + /* + Configure layout. + */ + layout=pango_layout_new(context); + option=GetImageOption(image_info,"caption:auto-dir"); + if (option != (const char *) NULL) + pango_layout_set_auto_dir(layout,1); + option=GetImageOption(image_info,"caption:ellipsize"); + if (option != (const char *) NULL) + { + if (LocaleCompare(option,"end") == 0) + pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_END); + if (LocaleCompare(option,"middle") == 0) + pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_MIDDLE); + if (LocaleCompare(option,"none") == 0) + pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_NONE); + if (LocaleCompare(option,"start") == 0) + pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_START); + } + option=GetImageOption(image_info,"caption:justify"); + if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) + pango_layout_set_justify(layout,1); + option=GetImageOption(image_info,"caption:single-paragraph"); + if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) + pango_layout_set_single_paragraph_mode(layout,1); + option=GetImageOption(image_info,"caption:wrap"); + if (option != (const char *) NULL) + { + if (LocaleCompare(option,"char") == 0) + pango_layout_set_wrap(layout,PANGO_WRAP_CHAR); + if (LocaleCompare(option,"word") == 0) + pango_layout_set_wrap(layout,PANGO_WRAP_WORD); + if (LocaleCompare(option,"word-char") == 0) + pango_layout_set_wrap(layout,PANGO_WRAP_WORD_CHAR); + } + option=GetImageOption(image_info,"caption:indent"); + if (option != (const char *) NULL) + pango_layout_set_indent(layout,(StringToLong(option)*image->resolution.x* + PANGO_SCALE+36)/72); + switch (draw_info->align) + { + case CenterAlign: align=PANGO_ALIGN_CENTER; break; + case RightAlign: align=PANGO_ALIGN_RIGHT; break; + case LeftAlign: + default: align=PANGO_ALIGN_LEFT; break; + } + if ((align != PANGO_ALIGN_CENTER) && + (draw_info->direction == RightToLeftDirection)) + align=PANGO_ALIGN_LEFT+PANGO_ALIGN_RIGHT-align; + pango_layout_set_alignment(layout,align); + description=pango_font_description_from_string(draw_info->font == + (char *) NULL ? "helvetica" : draw_info->font); + pango_font_description_set_size(description,PANGO_SCALE*draw_info->pointsize); + pango_layout_set_font_description(layout,description); + pango_font_description_free(description); + property=InterpretImageProperties(image_info,image,image_info->filename, + exception); + (void) SetImageProperty(image,"caption",property,exception); + property=DestroyString(property); + caption=ConstantString(GetImageProperty(image,"caption",exception)); + /* + Render caption. + */ + option=GetImageOption(image_info,"caption:markup"); + if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) + pango_layout_set_markup(layout,caption,-1); + else + pango_layout_set_text(layout,caption,-1); + pango_layout_context_changed(layout); + page.x=0; + page.y=0; + if (image_info->page != (char *) NULL) + (void) ParseAbsoluteGeometry(image_info->page,&page); + if (image->columns == 0) + { + pango_layout_get_pixel_extents(layout,NULL,&extent); + image->columns=extent.x+extent.width; + } + else + { + image->columns-=2*page.x; + pango_layout_set_width(layout,(PANGO_SCALE*image->columns* + image->resolution.x+36.0)/72.0); + } + if (image->rows == 0) + { + pango_layout_get_pixel_extents(layout,NULL,&extent); + image->rows=extent.y+extent.height; + } + else + { + image->rows-=2*page.y; + pango_layout_set_height(layout,(PANGO_SCALE*image->rows* + image->resolution.y+36.0)/72.0); + } + /* + Create canvas. + */ + canvas=(FT_Bitmap *) AcquireMagickMemory(sizeof(*canvas)); + if (canvas == (FT_Bitmap *) NULL) + { + draw_info=DestroyDrawInfo(draw_info); + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + } + canvas->width=image->columns; + canvas->pitch=(canvas->width+3) & ~3; + canvas->rows=image->rows; + canvas->buffer=(unsigned char *) AcquireQuantumMemory(canvas->pitch, + canvas->rows*sizeof(*canvas->buffer)); + if (canvas->buffer == (unsigned char *) NULL) + { + draw_info=DestroyDrawInfo(draw_info); + canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + } + canvas->num_grays=256; + canvas->pixel_mode=ft_pixel_mode_grays; + ResetMagickMemory(canvas->buffer,0x00,canvas->pitch*canvas->rows); + pango_ft2_render_layout(canvas,layout,0,0); + /* + Convert caption to image. + */ + image->columns+=2*page.x; + image->rows+=2*page.y; + if (SetImageBackgroundColor(image,exception) == MagickFalse) + { + draw_info=DestroyDrawInfo(draw_info); + canvas->buffer=(unsigned char *) RelinquishMagickMemory(canvas->buffer); + canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); + caption=DestroyString(caption); + image=DestroyImageList(image); + return((Image *) NULL); + } + GetPixelInfo(image,&fill_color); + p=canvas->buffer; + for (y=page.y; y < (ssize_t) (image->rows-page.y); y++) + { + register ssize_t + x; + + q=GetAuthenticPixels(image,0,y,image->columns,1,exception); + if (q == (Quantum *) NULL) + break; + q+=page.x*GetPixelChannels(image); + for (x=page.x; x < (ssize_t) (image->columns-page.x); x++) + { + MagickRealType + fill_opacity; + + (void) GetFillColor(draw_info,x,y,&fill_color,exception); + fill_opacity=(*p)*fill_color.alpha/canvas->num_grays; + if (draw_info->text_antialias == MagickFalse) + fill_opacity=fill_opacity >= 0.5 ? 1.0 : 0.0; + CompositePixelOver(image,&fill_color,fill_opacity,q, + GetPixelAlpha(image,q),q); + p++; + q+=GetPixelChannels(image); + } + for ( ; x < (ssize_t) ((canvas->width+3) & ~3); x++) + p++; + } + /* + Relinquish resources. + */ + draw_info=DestroyDrawInfo(draw_info); + canvas->buffer=(unsigned char *) RelinquishMagickMemory(canvas->buffer); + canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); + caption=DestroyString(caption); + return(GetFirstImageInList(image)); +} +#else static Image *ReadCAPTIONImage(const ImageInfo *image_info, ExceptionInfo *exception) { @@ -228,6 +525,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, caption=DestroyString(caption); return(GetFirstImageInList(image)); } +#endif /* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -254,14 +552,23 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info, */ ModuleExport size_t RegisterCAPTIONImage(void) { + char + version[MaxTextExtent]; + MagickInfo *entry; + *version='\0'; +#if defined(PANGO_VERSION_STRING) + (void) FormatLocaleString(version,MaxTextExtent,"(Pangoft2 %s)", + PANGO_VERSION_STRING); +#endif entry=SetMagickInfo("CAPTION"); entry->decoder=(DecodeImageHandler *) ReadCAPTIONImage; + entry->description=ConstantString("Caption"); + if (*version != '\0') + entry->version=ConstantString(version); entry->adjoin=MagickFalse; - entry->format_type=ImplicitFormatType; - entry->description=ConstantString("Image caption"); entry->module=ConstantString("CAPTION"); (void) RegisterMagickInfo(entry); return(MagickImageCoderSignature); diff --git a/coders/pango.c b/coders/pango.c deleted file mode 100644 index 362577453..000000000 --- a/coders/pango.c +++ /dev/null @@ -1,457 +0,0 @@ -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % -% PPPP AAA N N GGGG OOO % -% P P A A NN N G O O % -% PPPP AAAAA N N N G GGG O O % -% P M A A N NN G G O O % -% P A A N N GGGG OOO % -% % -% % -% Read Pango Markup Language Format % -% % -% Software Design % -% John Cristy % -% March 2012 % -% % -% % -% Copyright 1999-2011 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 % -% % -% http://www.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/annotate.h" -#include "MagickCore/blob.h" -#include "MagickCore/blob-private.h" -#include "MagickCore/composite-private.h" -#include "MagickCore/draw.h" -#include "MagickCore/draw-private.h" -#include "MagickCore/exception.h" -#include "MagickCore/exception-private.h" -#include "MagickCore/image.h" -#include "MagickCore/image-private.h" -#include "MagickCore/list.h" -#include "MagickCore/magick.h" -#include "MagickCore/module.h" -#include "MagickCore/memory_.h" -#include "MagickCore/option.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/string-private.h" -#include "MagickCore/utility.h" -#if defined(MAGICKCORE_PANGOFT2_DELEGATE) -#include -#include -#include -#endif - -#if defined(MAGICKCORE_PANGOFT2_DELEGATE) -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % -% R e a d P A N G O I m a g e % -% % -% % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% ReadPANGOImage() reads an image in the Pango Markup Language Format. -% -% The format of the ReadPANGOImage method is: -% -% Image *ReadPANGOImage(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 void PangoSubstitute(FcPattern *pattern,void *context) -{ - const char - *option; - - option=(const char *) context; - if (option == (const char *) NULL) - return; - FcPatternDel(pattern,FC_HINTING); - FcPatternAddBool(pattern, FC_HINTING,LocaleCompare(option,"none") != 0); - FcPatternDel(pattern,FC_AUTOHINT); - FcPatternAddBool(pattern,FC_AUTOHINT,LocaleCompare(option,"auto") == 0); -} - -static Image *ReadPANGOImage(const ImageInfo *image_info, - ExceptionInfo *exception) -{ - char - *caption, - *property; - - const char - *option; - - DrawInfo - *draw_info; - - FT_Bitmap - *canvas; - - Image - *image; - - PangoAlignment - align; - - PangoContext - *context; - - PangoFontDescription - *description; - - PangoFontMap - *fontmap; - - PangoGravity - gravity; - - PangoLayout - *layout; - - PangoRectangle - extent; - - PixelInfo - fill_color; - - RectangleInfo - page; - - register Quantum - *q; - - register unsigned char - *p; - - ssize_t - y; - - /* - Initialize Image structure. - */ - assert(image_info != (const ImageInfo *) NULL); - assert(image_info->signature == MagickSignature); - if (image_info->debug != MagickFalse) - (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", - image_info->filename); - assert(exception != (ExceptionInfo *) NULL); - assert(exception->signature == MagickSignature); - image=AcquireImage(image_info,exception); - (void) ResetImagePage(image,"0x0+0+0"); - /* - Get context. - */ - fontmap=(PangoFontMap *) pango_ft2_font_map_new(); - pango_ft2_font_map_set_resolution((PangoFT2FontMap *) fontmap, - image->resolution.x,image->resolution.y); - option=GetImageOption(image_info,"pango:hinting"); - pango_ft2_font_map_set_default_substitute((PangoFT2FontMap *) fontmap, - PangoSubstitute,(char *) option,NULL); - context=pango_font_map_create_context(fontmap); - option=GetImageOption(image_info,"pango:language"); - if (option != (const char *) NULL) - pango_context_set_language(context,pango_language_from_string(option)); - draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL); - pango_context_set_base_dir(context,draw_info->direction == - RightToLeftDirection ? PANGO_DIRECTION_RTL : PANGO_DIRECTION_LTR); - switch (draw_info->gravity) - { - case NorthGravity: gravity=PANGO_GRAVITY_NORTH; break; - case WestGravity: gravity=PANGO_GRAVITY_WEST; break; - case EastGravity: gravity=PANGO_GRAVITY_EAST; break; - case SouthGravity: gravity=PANGO_GRAVITY_SOUTH; break; - default: gravity=PANGO_GRAVITY_AUTO; break; - } - pango_context_set_base_gravity(context,gravity); - option=GetImageOption(image_info,"pango:gravity-hint"); - if (option != (const char *) NULL) - { - if (LocaleCompare(option,"line") == 0) - pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_LINE); - if (LocaleCompare(option,"natural") == 0) - pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_NATURAL); - if (LocaleCompare(option,"strong") == 0) - pango_context_set_gravity_hint(context,PANGO_GRAVITY_HINT_STRONG); - } - /* - Configure layout. - */ - layout=pango_layout_new(context); - option=GetImageOption(image_info,"pango:auto-dir"); - if (option != (const char *) NULL) - pango_layout_set_auto_dir(layout,1); - option=GetImageOption(image_info,"pango:ellipsize"); - if (option != (const char *) NULL) - { - if (LocaleCompare(option,"end") == 0) - pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_END); - if (LocaleCompare(option,"middle") == 0) - pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_MIDDLE); - if (LocaleCompare(option,"none") == 0) - pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_NONE); - if (LocaleCompare(option,"start") == 0) - pango_layout_set_ellipsize(layout,PANGO_ELLIPSIZE_START); - } - option=GetImageOption(image_info,"pango:justify"); - if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) - pango_layout_set_justify(layout,1); - option=GetImageOption(image_info,"pango:single-paragraph"); - if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) - pango_layout_set_single_paragraph_mode(layout,1); - option=GetImageOption(image_info,"pango:wrap"); - if (option != (const char *) NULL) - { - if (LocaleCompare(option,"char") == 0) - pango_layout_set_wrap(layout,PANGO_WRAP_CHAR); - if (LocaleCompare(option,"word") == 0) - pango_layout_set_wrap(layout,PANGO_WRAP_WORD); - if (LocaleCompare(option,"word-char") == 0) - pango_layout_set_wrap(layout,PANGO_WRAP_WORD_CHAR); - } - option=GetImageOption(image_info,"pango:indent"); - if (option != (const char *) NULL) - pango_layout_set_indent(layout,(StringToLong(option)*image->resolution.x* - PANGO_SCALE+36)/72); - switch (draw_info->align) - { - case CenterAlign: align=PANGO_ALIGN_CENTER; break; - case RightAlign: align=PANGO_ALIGN_RIGHT; break; - case LeftAlign: - default: align=PANGO_ALIGN_LEFT; break; - } - if ((align != PANGO_ALIGN_CENTER) && - (draw_info->direction == RightToLeftDirection)) - align=PANGO_ALIGN_LEFT+PANGO_ALIGN_RIGHT-align; - pango_layout_set_alignment(layout,align); - description=pango_font_description_from_string(draw_info->font == - (char *) NULL ? "helvetica" : draw_info->font); - pango_font_description_set_size(description,PANGO_SCALE*draw_info->pointsize); - pango_layout_set_font_description(layout,description); - pango_font_description_free(description); - property=InterpretImageProperties(image_info,image,image_info->filename, - exception); - (void) SetImageProperty(image,"caption",property,exception); - property=DestroyString(property); - caption=ConstantString(GetImageProperty(image,"caption",exception)); - /* - Render caption. - */ - option=GetImageOption(image_info,"pango:markup"); - if ((option != (const char *) NULL) && (IsMagickTrue(option) != MagickFalse)) - pango_layout_set_markup(layout,caption,-1); - else - pango_layout_set_text(layout,caption,-1); - pango_layout_context_changed(layout); - page.x=0; - page.y=0; - if (image_info->page != (char *) NULL) - (void) ParseAbsoluteGeometry(image_info->page,&page); - if (image->columns == 0) - { - pango_layout_get_pixel_extents(layout,NULL,&extent); - image->columns=extent.x+extent.width; - } - else - { - image->columns-=2*page.x; - pango_layout_set_width(layout,(PANGO_SCALE*image->columns* - image->resolution.x+36.0)/72.0); - } - if (image->rows == 0) - { - pango_layout_get_pixel_extents(layout,NULL,&extent); - image->rows=extent.y+extent.height; - } - else - { - image->rows-=2*page.y; - pango_layout_set_height(layout,(PANGO_SCALE*image->rows* - image->resolution.y+36.0)/72.0); - } - /* - Create canvas. - */ - canvas=(FT_Bitmap *) AcquireMagickMemory(sizeof(*canvas)); - if (canvas == (FT_Bitmap *) NULL) - { - draw_info=DestroyDrawInfo(draw_info); - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); - } - canvas->width=image->columns; - canvas->pitch=(canvas->width+3) & ~3; - canvas->rows=image->rows; - canvas->buffer=(unsigned char *) AcquireQuantumMemory(canvas->pitch, - canvas->rows*sizeof(*canvas->buffer)); - if (canvas->buffer == (unsigned char *) NULL) - { - draw_info=DestroyDrawInfo(draw_info); - canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); - } - canvas->num_grays=256; - canvas->pixel_mode=ft_pixel_mode_grays; - ResetMagickMemory(canvas->buffer,0x00,canvas->pitch*canvas->rows); - pango_ft2_render_layout(canvas,layout,0,0); - /* - Convert caption to image. - */ - image->columns+=2*page.x; - image->rows+=2*page.y; - if (SetImageBackgroundColor(image,exception) == MagickFalse) - { - draw_info=DestroyDrawInfo(draw_info); - canvas->buffer=(unsigned char *) RelinquishMagickMemory(canvas->buffer); - canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); - caption=DestroyString(caption); - image=DestroyImageList(image); - return((Image *) NULL); - } - GetPixelInfo(image,&fill_color); - p=canvas->buffer; - for (y=page.y; y < (ssize_t) (image->rows-page.y); y++) - { - register ssize_t - x; - - q=GetAuthenticPixels(image,0,y,image->columns,1,exception); - if (q == (Quantum *) NULL) - break; - q+=page.x*GetPixelChannels(image); - for (x=page.x; x < (ssize_t) (image->columns-page.x); x++) - { - MagickRealType - fill_opacity; - - (void) GetFillColor(draw_info,x,y,&fill_color,exception); - fill_opacity=(*p)*fill_color.alpha/canvas->num_grays; - if (draw_info->text_antialias == MagickFalse) - fill_opacity=fill_opacity >= 0.5 ? 1.0 : 0.0; - CompositePixelOver(image,&fill_color,fill_opacity,q, - GetPixelAlpha(image,q),q); - p++; - q+=GetPixelChannels(image); - } - for ( ; x < (ssize_t) ((canvas->width+3) & ~3); x++) - p++; - } - /* - Relinquish resources. - */ - draw_info=DestroyDrawInfo(draw_info); - canvas->buffer=(unsigned char *) RelinquishMagickMemory(canvas->buffer); - canvas=(FT_Bitmap *) RelinquishMagickMemory(canvas); - caption=DestroyString(caption); - return(GetFirstImageInList(image)); -} -#endif - -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % -% R e g i s t e r P A N G O I m a g e % -% % -% % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% RegisterPANGOImage() adds attributes for the Pango Markup Language 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 RegisterPANGOImage method is: -% -% size_t RegisterPANGOImage(void) -% -*/ -ModuleExport size_t RegisterPANGOImage(void) -{ - char - version[MaxTextExtent]; - - MagickInfo - *entry; - - *version='\0'; -#if defined(PANGO_VERSION_STRING) - (void) FormatLocaleString(version,MaxTextExtent,"(Pangoft2 %s)", - PANGO_VERSION_STRING); -#endif - entry=SetMagickInfo("PANGO"); -#if defined(MAGICKCORE_PANGOFT2_DELEGATE) - entry->decoder=(DecodeImageHandler *) ReadPANGOImage; -#endif - entry->description=ConstantString("Pango Markup Language"); - if (*version != '\0') - entry->version=ConstantString(version); - entry->adjoin=MagickFalse; - entry->module=ConstantString("PANGO"); - (void) RegisterMagickInfo(entry); - return(MagickImageCoderSignature); -} - -/* -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% % -% % -% % -% U n r e g i s t e r P A N G O I m a g e % -% % -% % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% UnregisterPANGOImage() removes format registrations made by the Pango module -% from the list of supported formats. -% -% The format of the UnregisterPANGOImage method is: -% -% UnregisterPANGOImage(void) -% -*/ -ModuleExport void UnregisterPANGOImage(void) -{ - (void) UnregisterMagickInfo("PANGO"); -}