$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(coders_avs_la_LDFLAGS) $(LDFLAGS) -o $@
@WITH_MODULES_TRUE@am_coders_avs_la_rpath = -rpath $(codersdir)
+coders_bgr_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
+am_coders_bgr_la_OBJECTS = coders/coders_bgr_la-bgr.lo
+coders_bgr_la_OBJECTS = $(am_coders_bgr_la_OBJECTS)
+coders_bgr_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(coders_bgr_la_LDFLAGS) $(LDFLAGS) -o $@
+@WITH_MODULES_TRUE@am_coders_bgr_la_rpath = -rpath $(codersdir)
coders_bmp_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
am_coders_bmp_la_OBJECTS = coders/coders_bmp_la-bmp.lo
coders_bmp_la_OBJECTS = $(am_coders_bmp_la_OBJECTS)
magick/version.c magick/version.h magick/vms.h magick/widget.c \
magick/widget.h magick/xml-tree.c magick/xml-tree.h \
magick/xwindow.c magick/xwindow.h magick/nt-feature.c \
- magick/nt-base.c coders/art.c coders/avs.c coders/bmp.c \
- coders/braille.c coders/cals.c coders/caption.c coders/cin.c \
- coders/cip.c coders/clip.c coders/cmyk.c coders/cut.c \
- coders/dcm.c coders/dds.c coders/debug.c coders/dib.c \
- coders/dng.c coders/dot.c coders/dpx.c coders/fax.c \
- coders/fits.c coders/gif.c coders/gradient.c coders/gray.c \
- coders/hald.c coders/histogram.c coders/hrz.c coders/html.c \
- coders/icon.c coders/info.c coders/inline.c coders/ipl.c \
- coders/label.c coders/magick.c 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/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/wmf.c coders/x.c \
- coders/xwd.c filters/analyze.c
+ magick/nt-base.c coders/art.c coders/avs.c coders/bgr.c \
+ coders/bmp.c coders/braille.c coders/cals.c coders/caption.c \
+ coders/cin.c coders/cip.c coders/clip.c coders/cmyk.c \
+ coders/cut.c coders/dcm.c coders/dds.c coders/debug.c \
+ coders/dib.c coders/dng.c coders/dot.c coders/dpx.c \
+ coders/fax.c coders/fits.c coders/gif.c coders/gradient.c \
+ coders/gray.c coders/hald.c coders/histogram.c coders/hrz.c \
+ coders/html.c coders/icon.c coders/info.c coders/inline.c \
+ coders/ipl.c coders/label.c coders/magick.c 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/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/wmf.c \
+ coders/x.c coders/xwd.c filters/analyze.c
am__objects_2 = magick/magick_libMagickCore_la-accelerate.lo \
magick/magick_libMagickCore_la-animate.lo \
magick/magick_libMagickCore_la-annotate.lo \
@X11_DELEGATE_TRUE@ coders/magick_libMagickCore_la-xwd.lo
am__objects_16 = coders/magick_libMagickCore_la-art.lo \
coders/magick_libMagickCore_la-avs.lo \
+ coders/magick_libMagickCore_la-bgr.lo \
coders/magick_libMagickCore_la-bmp.lo \
coders/magick_libMagickCore_la-braille.lo \
coders/magick_libMagickCore_la-cals.lo \
am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(Magick___lib_libMagick___la_SOURCES) \
$(coders_art_la_SOURCES) $(coders_avs_la_SOURCES) \
- $(coders_bmp_la_SOURCES) $(coders_braille_la_SOURCES) \
- $(coders_cals_la_SOURCES) $(coders_caption_la_SOURCES) \
- $(coders_cin_la_SOURCES) $(coders_cip_la_SOURCES) \
- $(coders_clip_la_SOURCES) $(coders_clipboard_la_SOURCES) \
- $(coders_cmyk_la_SOURCES) $(coders_cut_la_SOURCES) \
- $(coders_dcm_la_SOURCES) $(coders_dds_la_SOURCES) \
- $(coders_debug_la_SOURCES) $(coders_dib_la_SOURCES) \
- $(coders_djvu_la_SOURCES) $(coders_dng_la_SOURCES) \
- $(coders_dot_la_SOURCES) $(coders_dps_la_SOURCES) \
- $(coders_dpx_la_SOURCES) $(coders_emf_la_SOURCES) \
- $(coders_ept_la_SOURCES) $(coders_exr_la_SOURCES) \
- $(coders_fax_la_SOURCES) $(coders_fits_la_SOURCES) \
- $(coders_fpx_la_SOURCES) $(coders_gif_la_SOURCES) \
- $(coders_gradient_la_SOURCES) $(coders_gray_la_SOURCES) \
- $(coders_hald_la_SOURCES) $(coders_histogram_la_SOURCES) \
- $(coders_hrz_la_SOURCES) $(coders_html_la_SOURCES) \
- $(coders_icon_la_SOURCES) $(coders_info_la_SOURCES) \
- $(coders_inline_la_SOURCES) $(coders_ipl_la_SOURCES) \
- $(coders_jbig_la_SOURCES) $(coders_jp2_la_SOURCES) \
- $(coders_jpeg_la_SOURCES) $(coders_label_la_SOURCES) \
- $(coders_magick_la_SOURCES) $(coders_map_la_SOURCES) \
- $(coders_mat_la_SOURCES) $(coders_matte_la_SOURCES) \
- $(coders_meta_la_SOURCES) $(coders_miff_la_SOURCES) \
- $(coders_mono_la_SOURCES) $(coders_mpc_la_SOURCES) \
- $(coders_mpeg_la_SOURCES) $(coders_mpr_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_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_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_libMagickCore_la_SOURCES) \
+ $(coders_bgr_la_SOURCES) $(coders_bmp_la_SOURCES) \
+ $(coders_braille_la_SOURCES) $(coders_cals_la_SOURCES) \
+ $(coders_caption_la_SOURCES) $(coders_cin_la_SOURCES) \
+ $(coders_cip_la_SOURCES) $(coders_clip_la_SOURCES) \
+ $(coders_clipboard_la_SOURCES) $(coders_cmyk_la_SOURCES) \
+ $(coders_cut_la_SOURCES) $(coders_dcm_la_SOURCES) \
+ $(coders_dds_la_SOURCES) $(coders_debug_la_SOURCES) \
+ $(coders_dib_la_SOURCES) $(coders_djvu_la_SOURCES) \
+ $(coders_dng_la_SOURCES) $(coders_dot_la_SOURCES) \
+ $(coders_dps_la_SOURCES) $(coders_dpx_la_SOURCES) \
+ $(coders_emf_la_SOURCES) $(coders_ept_la_SOURCES) \
+ $(coders_exr_la_SOURCES) $(coders_fax_la_SOURCES) \
+ $(coders_fits_la_SOURCES) $(coders_fpx_la_SOURCES) \
+ $(coders_gif_la_SOURCES) $(coders_gradient_la_SOURCES) \
+ $(coders_gray_la_SOURCES) $(coders_hald_la_SOURCES) \
+ $(coders_histogram_la_SOURCES) $(coders_hrz_la_SOURCES) \
+ $(coders_html_la_SOURCES) $(coders_icon_la_SOURCES) \
+ $(coders_info_la_SOURCES) $(coders_inline_la_SOURCES) \
+ $(coders_ipl_la_SOURCES) $(coders_jbig_la_SOURCES) \
+ $(coders_jp2_la_SOURCES) $(coders_jpeg_la_SOURCES) \
+ $(coders_label_la_SOURCES) $(coders_magick_la_SOURCES) \
+ $(coders_map_la_SOURCES) $(coders_mat_la_SOURCES) \
+ $(coders_matte_la_SOURCES) $(coders_meta_la_SOURCES) \
+ $(coders_miff_la_SOURCES) $(coders_mono_la_SOURCES) \
+ $(coders_mpc_la_SOURCES) $(coders_mpeg_la_SOURCES) \
+ $(coders_mpr_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_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_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_libMagickCore_la_SOURCES) \
$(wand_libMagickWand_la_SOURCES) \
$(Magick___demo_analyze_SOURCES) \
$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
$(wand_drawtest_SOURCES) $(wand_wandtest_SOURCES)
DIST_SOURCES = $(Magick___lib_libMagick___la_SOURCES) \
$(coders_art_la_SOURCES) $(coders_avs_la_SOURCES) \
- $(coders_bmp_la_SOURCES) $(coders_braille_la_SOURCES) \
- $(coders_cals_la_SOURCES) $(coders_caption_la_SOURCES) \
- $(coders_cin_la_SOURCES) $(coders_cip_la_SOURCES) \
- $(coders_clip_la_SOURCES) $(coders_clipboard_la_SOURCES) \
- $(coders_cmyk_la_SOURCES) $(coders_cut_la_SOURCES) \
- $(coders_dcm_la_SOURCES) $(coders_dds_la_SOURCES) \
- $(coders_debug_la_SOURCES) $(coders_dib_la_SOURCES) \
- $(coders_djvu_la_SOURCES) $(coders_dng_la_SOURCES) \
- $(coders_dot_la_SOURCES) $(coders_dps_la_SOURCES) \
- $(coders_dpx_la_SOURCES) $(coders_emf_la_SOURCES) \
- $(coders_ept_la_SOURCES) $(coders_exr_la_SOURCES) \
- $(coders_fax_la_SOURCES) $(coders_fits_la_SOURCES) \
- $(coders_fpx_la_SOURCES) $(coders_gif_la_SOURCES) \
- $(coders_gradient_la_SOURCES) $(coders_gray_la_SOURCES) \
- $(coders_hald_la_SOURCES) $(coders_histogram_la_SOURCES) \
- $(coders_hrz_la_SOURCES) $(coders_html_la_SOURCES) \
- $(coders_icon_la_SOURCES) $(coders_info_la_SOURCES) \
- $(coders_inline_la_SOURCES) $(coders_ipl_la_SOURCES) \
- $(coders_jbig_la_SOURCES) $(coders_jp2_la_SOURCES) \
- $(coders_jpeg_la_SOURCES) $(coders_label_la_SOURCES) \
- $(coders_magick_la_SOURCES) $(coders_map_la_SOURCES) \
- $(coders_mat_la_SOURCES) $(coders_matte_la_SOURCES) \
- $(coders_meta_la_SOURCES) $(coders_miff_la_SOURCES) \
- $(coders_mono_la_SOURCES) $(coders_mpc_la_SOURCES) \
- $(coders_mpeg_la_SOURCES) $(coders_mpr_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_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_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) \
+ $(coders_bgr_la_SOURCES) $(coders_bmp_la_SOURCES) \
+ $(coders_braille_la_SOURCES) $(coders_cals_la_SOURCES) \
+ $(coders_caption_la_SOURCES) $(coders_cin_la_SOURCES) \
+ $(coders_cip_la_SOURCES) $(coders_clip_la_SOURCES) \
+ $(coders_clipboard_la_SOURCES) $(coders_cmyk_la_SOURCES) \
+ $(coders_cut_la_SOURCES) $(coders_dcm_la_SOURCES) \
+ $(coders_dds_la_SOURCES) $(coders_debug_la_SOURCES) \
+ $(coders_dib_la_SOURCES) $(coders_djvu_la_SOURCES) \
+ $(coders_dng_la_SOURCES) $(coders_dot_la_SOURCES) \
+ $(coders_dps_la_SOURCES) $(coders_dpx_la_SOURCES) \
+ $(coders_emf_la_SOURCES) $(coders_ept_la_SOURCES) \
+ $(coders_exr_la_SOURCES) $(coders_fax_la_SOURCES) \
+ $(coders_fits_la_SOURCES) $(coders_fpx_la_SOURCES) \
+ $(coders_gif_la_SOURCES) $(coders_gradient_la_SOURCES) \
+ $(coders_gray_la_SOURCES) $(coders_hald_la_SOURCES) \
+ $(coders_histogram_la_SOURCES) $(coders_hrz_la_SOURCES) \
+ $(coders_html_la_SOURCES) $(coders_icon_la_SOURCES) \
+ $(coders_info_la_SOURCES) $(coders_inline_la_SOURCES) \
+ $(coders_ipl_la_SOURCES) $(coders_jbig_la_SOURCES) \
+ $(coders_jp2_la_SOURCES) $(coders_jpeg_la_SOURCES) \
+ $(coders_label_la_SOURCES) $(coders_magick_la_SOURCES) \
+ $(coders_map_la_SOURCES) $(coders_mat_la_SOURCES) \
+ $(coders_matte_la_SOURCES) $(coders_meta_la_SOURCES) \
+ $(coders_miff_la_SOURCES) $(coders_mono_la_SOURCES) \
+ $(coders_mpc_la_SOURCES) $(coders_mpeg_la_SOURCES) \
+ $(coders_mpr_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_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_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) \
$(am__magick_libMagickCore_la_SOURCES_DIST) \
$(wand_libMagickWand_la_SOURCES) \
$(Magick___demo_analyze_SOURCES) \
MAGICK_CODER_SRCS = \
coders/art.c \
coders/avs.c \
+ coders/bgr.c \
coders/bmp.c \
coders/braille.c \
coders/cals.c \
@WITH_MODULES_TRUE@coders_LTLIBRARIES = \
@WITH_MODULES_TRUE@ coders/art.la \
@WITH_MODULES_TRUE@ coders/avs.la \
+@WITH_MODULES_TRUE@ coders/bgr.la \
@WITH_MODULES_TRUE@ coders/bmp.la \
@WITH_MODULES_TRUE@ coders/braille.la \
@WITH_MODULES_TRUE@ coders/cals.la \
coders_avs_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_avs_la_LIBADD = $(MAGICKCORE_LIBS)
+# BRG coder module
+coders_bgr_la_SOURCES = coders/bgr.c
+coders_bgr_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS)
+coders_bgr_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_bgr_la_LIBADD = $(MAGICKCORE_LIBS)
+
# BMP coder module
coders_bmp_la_SOURCES = coders/bmp.c
coders_bmp_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS)
coders/$(DEPDIR)/$(am__dirstamp)
coders/avs.la: $(coders_avs_la_OBJECTS) $(coders_avs_la_DEPENDENCIES) coders/$(am__dirstamp)
$(AM_V_CCLD)$(coders_avs_la_LINK) $(am_coders_avs_la_rpath) $(coders_avs_la_OBJECTS) $(coders_avs_la_LIBADD) $(LIBS)
+coders/coders_bgr_la-bgr.lo: coders/$(am__dirstamp) \
+ coders/$(DEPDIR)/$(am__dirstamp)
+coders/bgr.la: $(coders_bgr_la_OBJECTS) $(coders_bgr_la_DEPENDENCIES) coders/$(am__dirstamp)
+ $(AM_V_CCLD)$(coders_bgr_la_LINK) $(am_coders_bgr_la_rpath) $(coders_bgr_la_OBJECTS) $(coders_bgr_la_LIBADD) $(LIBS)
coders/coders_bmp_la-bmp.lo: coders/$(am__dirstamp) \
coders/$(DEPDIR)/$(am__dirstamp)
coders/bmp.la: $(coders_bmp_la_OBJECTS) $(coders_bmp_la_DEPENDENCIES) coders/$(am__dirstamp)
coders/$(DEPDIR)/$(am__dirstamp)
coders/magick_libMagickCore_la-avs.lo: coders/$(am__dirstamp) \
coders/$(DEPDIR)/$(am__dirstamp)
+coders/magick_libMagickCore_la-bgr.lo: coders/$(am__dirstamp) \
+ coders/$(DEPDIR)/$(am__dirstamp)
coders/magick_libMagickCore_la-bmp.lo: coders/$(am__dirstamp) \
coders/$(DEPDIR)/$(am__dirstamp)
coders/magick_libMagickCore_la-braille.lo: coders/$(am__dirstamp) \
-rm -f coders/coders_art_la-art.lo
-rm -f coders/coders_avs_la-avs.$(OBJEXT)
-rm -f coders/coders_avs_la-avs.lo
+ -rm -f coders/coders_bgr_la-bgr.$(OBJEXT)
+ -rm -f coders/coders_bgr_la-bgr.lo
-rm -f coders/coders_bmp_la-bmp.$(OBJEXT)
-rm -f coders/coders_bmp_la-bmp.lo
-rm -f coders/coders_braille_la-braille.$(OBJEXT)
-rm -f coders/magick_libMagickCore_la-art.lo
-rm -f coders/magick_libMagickCore_la-avs.$(OBJEXT)
-rm -f coders/magick_libMagickCore_la-avs.lo
+ -rm -f coders/magick_libMagickCore_la-bgr.$(OBJEXT)
+ -rm -f coders/magick_libMagickCore_la-bgr.lo
-rm -f coders/magick_libMagickCore_la-bmp.$(OBJEXT)
-rm -f coders/magick_libMagickCore_la-bmp.lo
-rm -f coders/magick_libMagickCore_la-braille.$(OBJEXT)
@AMDEP_TRUE@@am__include@ @am__quote@Magick++/tests/$(DEPDIR)/readWriteImages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_art_la-art.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_avs_la-avs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_bgr_la-bgr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_bmp_la-bmp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_braille_la-braille.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_cals_la-cals.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/coders_yuv_la-yuv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-art.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-avs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-bgr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-bmp.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-braille.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/magick_libMagickCore_la-cals.Plo@am__quote@
@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_avs_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/coders_avs_la-avs.lo `test -f 'coders/avs.c' || echo '$(srcdir)/'`coders/avs.c
+coders/coders_bgr_la-bgr.lo: coders/bgr.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_bgr_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/coders_bgr_la-bgr.lo -MD -MP -MF coders/$(DEPDIR)/coders_bgr_la-bgr.Tpo -c -o coders/coders_bgr_la-bgr.lo `test -f 'coders/bgr.c' || echo '$(srcdir)/'`coders/bgr.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/coders_bgr_la-bgr.Tpo coders/$(DEPDIR)/coders_bgr_la-bgr.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coders/bgr.c' object='coders/coders_bgr_la-bgr.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_bgr_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/coders_bgr_la-bgr.lo `test -f 'coders/bgr.c' || echo '$(srcdir)/'`coders/bgr.c
+
coders/coders_bmp_la-bmp.lo: coders/bmp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_bmp_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/coders_bmp_la-bmp.lo -MD -MP -MF coders/$(DEPDIR)/coders_bmp_la-bmp.Tpo -c -o coders/coders_bmp_la-bmp.lo `test -f 'coders/bmp.c' || echo '$(srcdir)/'`coders/bmp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/coders_bmp_la-bmp.Tpo coders/$(DEPDIR)/coders_bmp_la-bmp.Plo
@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) $(magick_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/magick_libMagickCore_la-avs.lo `test -f 'coders/avs.c' || echo '$(srcdir)/'`coders/avs.c
+coders/magick_libMagickCore_la-bgr.lo: coders/bgr.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(magick_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/magick_libMagickCore_la-bgr.lo -MD -MP -MF coders/$(DEPDIR)/magick_libMagickCore_la-bgr.Tpo -c -o coders/magick_libMagickCore_la-bgr.lo `test -f 'coders/bgr.c' || echo '$(srcdir)/'`coders/bgr.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/magick_libMagickCore_la-bgr.Tpo coders/$(DEPDIR)/magick_libMagickCore_la-bgr.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coders/bgr.c' object='coders/magick_libMagickCore_la-bgr.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) $(magick_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/magick_libMagickCore_la-bgr.lo `test -f 'coders/bgr.c' || echo '$(srcdir)/'`coders/bgr.c
+
coders/magick_libMagickCore_la-bmp.lo: coders/bmp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(magick_libMagickCore_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/magick_libMagickCore_la-bmp.lo -MD -MP -MF coders/$(DEPDIR)/magick_libMagickCore_la-bmp.Tpo -c -o coders/magick_libMagickCore_la-bmp.lo `test -f 'coders/bmp.c' || echo '$(srcdir)/'`coders/bmp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/magick_libMagickCore_la-bmp.Tpo coders/$(DEPDIR)/magick_libMagickCore_la-bmp.Plo
$write sys$output "Making Coders..."
$call Make art.c
$call Make avs.c
+$call Make bgr.c
$call Make bmp.c
$call Make braille.c
$call Make cals.c
$call Make scr.c
$deass magick
$deass wand
-$library/create libCoders.olb art,avs,bmp,braille,clip,clipboard,cip,cmyk, -
+$library/create libCoders.olb art,avs,bgr,bmp,braille,clip,clipboard,cip,cmyk, -
cut,dcm,dds,debug,dib,dng,dps,dpx,emf,ept,exr,fax,fits,fpx,gif,gradient, -
gray,hald,histogram,hrz,html,icon,info,inline,ipl,jbig,jpeg,jp2,label,cals, -
caption,palm,map,mat,matte, -
MAGICK_CODER_SRCS = \
coders/art.c \
coders/avs.c \
+ coders/bgr.c \
coders/bmp.c \
coders/braille.c \
coders/cals.c \
coders_LTLIBRARIES = \
coders/art.la \
coders/avs.la \
+ coders/bgr.la \
coders/bmp.la \
coders/braille.la \
coders/cals.la \
coders_avs_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_avs_la_LIBADD = $(MAGICKCORE_LIBS)
+# BRG coder module
+coders_bgr_la_SOURCES = coders/bgr.c
+coders_bgr_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS)
+coders_bgr_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_bgr_la_LIBADD = $(MAGICKCORE_LIBS)
+
# BMP coder module
coders_bmp_la_SOURCES = coders/bmp.c
coders_bmp_la_CPPFLAGS = $(MODULE_EXTRA_CPPFLAGS)
--- /dev/null
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% BBBB GGGG RRRR %
+% B B G R R %
+% BBBB G GG RRRR %
+% B B G G R R %
+% BBBB GGG R R %
+% %
+% %
+% Read/Write Raw BGR Image Format %
+% %
+% Software Design %
+% John Cristy %
+% July 1992 %
+% %
+% %
+% Copyright 1999-2008 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. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+*/
+\f
+/*
+ Include declarations.
+*/
+#include "magick/studio.h"
+#include "magick/blob.h"
+#include "magick/blob-private.h"
+#include "magick/cache.h"
+#include "magick/colorspace.h"
+#include "magick/constitute.h"
+#include "magick/exception.h"
+#include "magick/exception-private.h"
+#include "magick/image.h"
+#include "magick/image-private.h"
+#include "magick/list.h"
+#include "magick/magick.h"
+#include "magick/memory_.h"
+#include "magick/monitor.h"
+#include "magick/monitor-private.h"
+#include "magick/pixel-private.h"
+#include "magick/quantum-private.h"
+#include "magick/static.h"
+#include "magick/statistic.h"
+#include "magick/string_.h"
+#include "magick/module.h"
+#include "magick/utility.h"
+\f
+/*
+ Forward declarations.
+*/
+static MagickBooleanType
+ WriteBGRImage(const ImageInfo *,Image *);
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% R e a d B G R I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ReadBGRImage() reads an image of raw BGR, or BGRA samples and returns
+% it. It allocates the memory necessary for the new Image structure and
+% returns a pointer to the new image.
+%
+% The format of the ReadBGRImage method is:
+%
+% Image *ReadBGRImage(const ImageInfo *image_info,
+% ExceptionInfo *exception)
+%
+% A description of each parameter follows:
+%
+% o image_info: the image info.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+static Image *ReadBGRImage(const ImageInfo *image_info,
+ ExceptionInfo *exception)
+{
+ Image
+ *canvas_image,
+ *image;
+
+ MagickBooleanType
+ status;
+
+ MagickOffsetType
+ scene;
+
+ QuantumInfo
+ *quantum_info;
+
+ QuantumType
+ quantum_type;
+
+ register ssize_t
+ i;
+
+ ssize_t
+ count,
+ y;
+
+ size_t
+ length;
+
+ unsigned char
+ *pixels;
+
+ /*
+ Open image file.
+ */
+ 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);
+ if ((image->columns == 0) || (image->rows == 0))
+ ThrowReaderException(OptionError,"MustSpecifyImageSize");
+ image->colorspace=RGBColorspace;
+ if (image_info->interlace != PartitionInterlace)
+ {
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ for (i=0; i < image->offset; i++)
+ if (ReadBlobByte(image) == EOF)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ }
+ /*
+ Create virtual canvas to support cropping (i.e. image.rgb[100x100+10+20]).
+ */
+ canvas_image=CloneImage(image,image->extract_info.width,1,MagickFalse,
+ exception);
+ (void) SetImageVirtualPixelMethod(canvas_image,BlackVirtualPixelMethod);
+ quantum_info=AcquireQuantumInfo(image_info,canvas_image);
+ if (quantum_info == (QuantumInfo *) NULL)
+ ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+ pixels=GetQuantumPixels(quantum_info);
+ quantum_type=BGRQuantum;
+ if (LocaleCompare(image_info->magick,"BGRA") == 0)
+ {
+ quantum_type=BGRAQuantum;
+ image->matte=MagickTrue;
+ }
+ if (image_info->number_scenes != 0)
+ while (image->scene < image_info->scene)
+ {
+ /*
+ Skip to next image.
+ */
+ image->scene++;
+ length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ count=ReadBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ }
+ count=0;
+ length=0;
+ scene=0;
+ do
+ {
+ /*
+ Read pixels to virtual canvas image then push to image.
+ */
+ if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
+ if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+ break;
+ image->colorspace=RGBColorspace;
+ switch (image_info->interlace)
+ {
+ case NoInterlace:
+ default:
+ {
+ /*
+ No interlacing: BGRBGRBGRBGRBGRBGR...
+ */
+ if (scene == 0)
+ {
+ length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
+ count=ReadBlob(image,length,pixels);
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,quantum_type,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=QueueAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ SetOpacityPixelComponent(q,OpaqueOpacity);
+ if (image->matte != MagickFalse)
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+ image->rows);
+ if (status == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ break;
+ }
+ case LineInterlace:
+ {
+ static QuantumType
+ quantum_types[4] =
+ {
+ BlueQuantum,
+ GreenQuantum,
+ RedQuantum,
+ AlphaQuantum
+ };
+
+ /*
+ Line interlacing: BBB...GGG...RRR...RRR...GGG...BBB...
+ */
+ if (scene == 0)
+ {
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
+ count=ReadBlob(image,length,pixels);
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ for (i=0; i < (ssize_t) (image->matte != MagickFalse ? 4 : 3); i++)
+ {
+ quantum_type=quantum_types[i];
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,quantum_type,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
+ 0,canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ switch (quantum_type)
+ {
+ case RedQuantum:
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ break;
+ }
+ case GreenQuantum:
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ break;
+ }
+ case BlueQuantum:
+ {
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ break;
+ }
+ case OpacityQuantum:
+ {
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ break;
+ }
+ case AlphaQuantum:
+ {
+ SetAlphaPixelComponent(q,GetAlphaPixelComponent(p));
+ break;
+ }
+ default:
+ break;
+ }
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+ image->rows);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ break;
+ }
+ case PlaneInterlace:
+ {
+ /*
+ Plane interlacing: RRRRRR...GGGGGG...BBBBBB...
+ */
+ if (scene == 0)
+ {
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
+ count=ReadBlob(image,length,pixels);
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,2,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,3,6);
+ if (status == MagickFalse)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,4,6);
+ if (status == MagickFalse)
+ break;
+ }
+ if (image->matte != MagickFalse)
+ {
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,
+ canvas_image->extract_info.x,0,canvas_image->columns,1,
+ exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,5,6);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,6,6);
+ if (status == MagickFalse)
+ break;
+ }
+ break;
+ }
+ case PartitionInterlace:
+ {
+ /*
+ Partition interlacing: BBBBBB..., GGGGGG..., RRRRRR...
+ */
+ AppendImageFormat("B",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ for (i=0; i < image->offset; i++)
+ if (ReadBlobByte(image) == EOF)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,BlueQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,1,5);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("G",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,GreenQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,2,5);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("R",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,3,5);
+ if (status == MagickFalse)
+ break;
+ }
+ if (image->matte != MagickFalse)
+ {
+ (void) CloseBlob(image);
+ AppendImageFormat("A",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,AlphaQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
+ 0,canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,4,5);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ (void) CloseBlob(image);
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,5,5);
+ if (status == MagickFalse)
+ break;
+ }
+ break;
+ }
+ }
+ SetQuantumImageType(image,quantum_type);
+ /*
+ Proceed to next image.
+ */
+ if (image_info->number_scenes != 0)
+ if (image->scene >= (image_info->scene+image_info->number_scenes-1))
+ break;
+ if (count == (ssize_t) length)
+ {
+ /*
+ Allocate next image structure.
+ */
+ AcquireNextImage(image_info,image);
+ if (GetNextImageInList(image) == (Image *) NULL)
+ {
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ image=SyncNextImageInList(image);
+ status=SetImageProgress(image,LoadImagesTag,TellBlob(image),
+ GetBlobSize(image));
+ if (status == MagickFalse)
+ break;
+ }
+ scene++;
+ } while (count == (ssize_t) length);
+ quantum_info=DestroyQuantumInfo(quantum_info);
+ InheritException(&image->exception,&canvas_image->exception);
+ canvas_image=DestroyImage(canvas_image);
+ (void) CloseBlob(image);
+ return(GetFirstImageInList(image));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% R e g i s t e r B G R I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RegisterBGRImage() adds attributes for the BGR image format to
+% the list of supported formats. The attributes include the image format
+% tag, a method to read and/or write the format, whether the format
+% supports the saving of more than one frame to the same file or blob,
+% whether the format supports native in-memory I/O, and a brief
+% description of the format.
+%
+% The format of the RegisterBGRImage method is:
+%
+% size_t RegisterBGRImage(void)
+%
+*/
+ModuleExport size_t RegisterBGRImage(void)
+{
+ MagickInfo
+ *entry;
+
+ entry=SetMagickInfo("BGR");
+ entry->decoder=(DecodeImageHandler *) ReadBGRImage;
+ entry->encoder=(EncodeImageHandler *) WriteBGRImage;
+ entry->raw=MagickTrue;
+ entry->endian_support=MagickTrue;
+ entry->description=ConstantString("Raw blue, green, and red samples");
+ entry->module=ConstantString("BGR");
+ (void) RegisterMagickInfo(entry);
+ entry=SetMagickInfo("BGRA");
+ entry->decoder=(DecodeImageHandler *) ReadBGRImage;
+ entry->encoder=(EncodeImageHandler *) WriteBGRImage;
+ entry->raw=MagickTrue;
+ entry->endian_support=MagickTrue;
+ entry->description=ConstantString("Raw blue, green, red, and alpha samples");
+ entry->module=ConstantString("BGR");
+ (void) RegisterMagickInfo(entry);
+ return(MagickImageCoderSignature);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% U n r e g i s t e r B G R I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% UnregisterBGRImage() removes format registrations made by the BGR module
+% from the list of supported formats.
+%
+% The format of the UnregisterBGRImage method is:
+%
+% UnregisterBGRImage(void)
+%
+*/
+ModuleExport void UnregisterBGRImage(void)
+{
+ (void) UnregisterMagickInfo("BGRA");
+ (void) UnregisterMagickInfo("BGR");
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% W r i t e B G R I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% WriteBGRImage() writes an image to a file in the BGR or BGRA
+% rasterfile format.
+%
+% The format of the WriteBGRImage method is:
+%
+% MagickBooleanType WriteBGRImage(const ImageInfo *image_info,
+% Image *image)
+%
+% A description of each parameter follows.
+%
+% o image_info: the image info.
+%
+% o image: The image.
+%
+*/
+static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,
+ Image *image)
+{
+ MagickBooleanType
+ status;
+
+ MagickOffsetType
+ scene;
+
+ QuantumInfo
+ *quantum_info;
+
+ QuantumType
+ quantum_type;
+
+ ssize_t
+ count;
+
+ size_t
+ length,
+ y;
+
+ unsigned char
+ *pixels;
+
+ /*
+ Allocate memory for pixels.
+ */
+ assert(image_info != (const ImageInfo *) NULL);
+ assert(image_info->signature == MagickSignature);
+ assert(image != (Image *) NULL);
+ assert(image->signature == MagickSignature);
+ if (image->debug != MagickFalse)
+ (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ if (image_info->interlace != PartitionInterlace)
+ {
+ /*
+ Open output image file.
+ */
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ }
+ quantum_type=BGRQuantum;
+ if (LocaleCompare(image_info->magick,"BGRA") == 0)
+ {
+ quantum_type=BGRAQuantum;
+ image->matte=MagickTrue;
+ }
+ scene=0;
+ do
+ {
+ /*
+ Convert MIFF to BGR raster pixels.
+ */
+ if (image->colorspace != RGBColorspace)
+ (void) TransformImageColorspace(image,RGBColorspace);
+ if ((LocaleCompare(image_info->magick,"BGRA") == 0) &&
+ (image->matte == MagickFalse))
+ (void) SetImageAlphaChannel(image,ResetAlphaChannel);
+ quantum_info=AcquireQuantumInfo(image_info,image);
+ if (quantum_info == (QuantumInfo *) NULL)
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ pixels=GetQuantumPixels(quantum_info);
+ switch (image_info->interlace)
+ {
+ case NoInterlace:
+ default:
+ {
+ /*
+ No interlacing: BGRBGRBGRBGRBGRBGR...
+ */
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,quantum_type,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+ image->rows);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ break;
+ }
+ case LineInterlace:
+ {
+ /*
+ Line interlacing: BBB...GGG...RRR...RRR...GGG...BBB...
+ */
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ if (quantum_type == BGRAQuantum)
+ {
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+ image->rows);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ break;
+ }
+ case PlaneInterlace:
+ {
+ /*
+ Plane interlacing: RRRRRR...GGGGGG...BBBBBB...
+ */
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,2,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,3,6);
+ if (status == MagickFalse)
+ break;
+ }
+ if (quantum_type == BGRAQuantum)
+ {
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,5,6);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ if (image_info->interlace == PartitionInterlace)
+ (void) CopyMagickString(image->filename,image_info->filename,
+ MaxTextExtent);
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,6,6);
+ if (status == MagickFalse)
+ break;
+ }
+ break;
+ }
+ case PartitionInterlace:
+ {
+ /*
+ Partition interlacing: BBBBBB..., GGGGGG..., RRRRRR...
+ */
+ AppendImageFormat("B",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("G",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,2,6);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("R",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,3,6);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ if (quantum_type == BGRAQuantum)
+ {
+ (void) CloseBlob(image);
+ AppendImageFormat("A",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,
+ &image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,5,6);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ (void) CloseBlob(image);
+ (void) CopyMagickString(image->filename,image_info->filename,
+ MaxTextExtent);
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,6,6);
+ if (status == MagickFalse)
+ break;
+ }
+ break;
+ }
+ }
+ quantum_info=DestroyQuantumInfo(quantum_info);
+ if (GetNextImageInList(image) == (Image *) NULL)
+ break;
+ image=SyncNextImageInList(image);
+ status=SetImageProgress(image,SaveImagesTag,scene++,
+ GetImageListLength(image));
+ if (status == MagickFalse)
+ break;
+ } while (image_info->adjoin != MagickFalse);
+ (void) CloseBlob(image);
+ return(MagickTrue);
+}
*canvas_image,
*image;
- ssize_t
- y;
-
MagickBooleanType
status;
i;
ssize_t
- count;
+ count,
+ y;
size_t
length;
register IndexPacket
*restrict indexes;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register IndexPacket
*restrict indexes;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register IndexPacket
*restrict indexes;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register IndexPacket
*restrict indexes;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
Image *image)
{
- ssize_t
- y;
-
MagickBooleanType
status;
quantum_type;
ssize_t
- count;
+ count,
+ y;
size_t
length;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- quantum_type,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,quantum_type,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- CyanQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,CyanQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- MagentaQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,MagentaQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- YellowQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,YellowQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- BlackQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlackQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- CyanQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,CyanQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- MagentaQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,MagentaQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- YellowQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,YellowQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- BlackQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlackQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
register const PixelPacket
*restrict p;
- p=GetVirtualPixels(image,0,y,image->columns,1,
- &image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
length=ExportQuantumPixels(image,(const CacheView *) NULL,
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- CyanQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,CyanQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- MagentaQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,MagentaQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- YellowQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,YellowQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,quantum_info,
- BlackQuantum,pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlackQuantum,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% ReadRGBImage() reads an image of raw RGB or RGBA samples and returns it. It
-% allocates the memory necessary for the new Image structure and returns a
-% pointer to the new image.
+% ReadRGBImage() reads an image of raw RGB, RGBA, or RGBO samples and returns
+% it. It allocates the memory necessary for the new Image structure and
+% returns a pointer to the new image.
%
% The format of the ReadRGBImage method is:
%
-% Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
+% Image *ReadRGBImage(const ImageInfo *image_info,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o exception: return any errors or warnings in this structure.
%
*/
-static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception)
+static Image *ReadRGBImage(const ImageInfo *image_info,
+ ExceptionInfo *exception)
{
Image
*canvas_image,
QuantumType
quantum_type;
- Quantum
- qx[4];
-
register ssize_t
- i,
- j;
+ i;
ssize_t
count,
y;
size_t
- channels,
length;
unsigned char
*pixels;
- QuantumType
- quantum_types[4];
-
- char
- sfx[] = {0, 0};
-
/*
Open image file.
*/
image=AcquireImage(image_info);
if ((image->columns == 0) || (image->rows == 0))
ThrowReaderException(OptionError,"MustSpecifyImageSize");
+ image->colorspace=RGBColorspace;
if (image_info->interlace != PartitionInterlace)
{
status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
pixels=GetQuantumPixels(quantum_info);
quantum_type=RGBQuantum;
- for (i=0; i < 4; i++)
- {
- if (image_info->magick[i] == '\0')
- break;
- switch(image_info->magick[i])
+ if (LocaleCompare(image_info->magick,"RGBA") == 0)
{
- case 'R': quantum_types[i]=RedQuantum; break;
- case 'G': quantum_types[i]=GreenQuantum; break;
- case 'B': quantum_types[i]=BlueQuantum; break;
- case 'A':
- {
- quantum_types[i]=AlphaQuantum;
- quantum_type=RGBAQuantum;
- break;
- }
- case 'O':
- {
- quantum_types[i]=OpacityQuantum;
- quantum_type=RGBOQuantum;
- break;
- }
- default:
- break;
+ quantum_type=RGBAQuantum;
+ image->matte=MagickTrue;
+ }
+ if (LocaleCompare(image_info->magick,"RGBO") == 0)
+ {
+ quantum_type=RGBOQuantum;
+ image->matte=MagickTrue;
}
- }
- channels=i;
if (image_info->number_scenes != 0)
while (image->scene < image_info->scene)
{
if ((image_info->ping != MagickFalse) && (image_info->number_scenes != 0))
if (image->scene >= (image_info->scene+image_info->number_scenes-1))
break;
+ image->colorspace=RGBColorspace;
switch (image_info->interlace)
{
case NoInterlace:
{
length=GetQuantumExtent(canvas_image,quantum_info,quantum_type);
count=ReadBlob(image,length,pixels);
- if (count != (ssize_t) length)
- break;
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
quantum_info,quantum_type,pixels,exception);
if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
break;
- if (((y-image->extract_info.y) >= 0) &&
+ if (((y-image->extract_info.y) >= 0) &&
((y-image->extract_info.y) < (ssize_t) image->rows))
{
p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- qx[0]=GetRedPixelComponent(p);
- qx[1]=GetGreenPixelComponent(p);
- qx[2]=GetBluePixelComponent(p);
- qx[3]=GetOpacityPixelComponent(p);
- for (i=0; i < channels; i++)
- switch(quantum_types[i])
- {
- case RedQuantum: q->red=qx[i]; break;
- case GreenQuantum: q->green=qx[i]; break;
- case BlueQuantum: q->blue=qx[i]; break;
- case AlphaQuantum: q->opacity=qx[i]; break;
- case OpacityQuantum: q->opacity=qx[i]; break;
- default: break;
- }
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ SetOpacityPixelComponent(q,OpaqueOpacity);
+ if (image->matte != MagickFalse)
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
p++;
q++;
}
}
case LineInterlace:
{
+ static QuantumType
+ quantum_types[4] =
+ {
+ RedQuantum,
+ GreenQuantum,
+ BlueQuantum,
+ AlphaQuantum
+ };
+
/*
Line interlacing: RRR...GGG...BBB...RRR...GGG...BBB...
*/
+ if (LocaleCompare(image_info->magick,"RGBO") == 0)
+ quantum_types[3]=OpacityQuantum;
if (scene == 0)
{
- length=GetQuantumExtent(canvas_image,quantum_info,quantum_types[0]);
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
count=ReadBlob(image,length,pixels);
}
for (y=0; y < (ssize_t) image->extract_info.height; y++)
register const PixelPacket
*restrict p;
- register ssize_t
- x;
-
register PixelPacket
*restrict q;
+ register ssize_t
+ x;
+
if (count != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
break;
}
- for (i=0; i < channels; i++)
+ for (i=0; i < (ssize_t) (image->matte != MagickFalse ? 4 : 3); i++)
{
+ quantum_type=quantum_types[i];
q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
exception);
if (q == (PixelPacket *) NULL)
break;
length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,exception);
+ quantum_info,quantum_type,pixels,exception);
if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
break;
- if (((y-image->extract_info.y) >= 0) &&
+ if (((y-image->extract_info.y) >= 0) &&
((y-image->extract_info.y) < (ssize_t) image->rows))
{
p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
if ((p == (const PixelPacket *) NULL) ||
(q == (PixelPacket *) NULL))
break;
- if (i == (channels - 1))
- for (x=0; x < (ssize_t) image->columns; x++)
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ switch (quantum_type)
{
- SetRedPixelComponent(q,GetRedPixelComponent(p));
- SetGreenPixelComponent(q,GetGreenPixelComponent(p));
- SetBluePixelComponent(q,GetBluePixelComponent(p));
- SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
- p++;
- q++;
+ case RedQuantum:
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ break;
+ }
+ case GreenQuantum:
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ break;
+ }
+ case BlueQuantum:
+ {
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ break;
+ }
+ case OpacityQuantum:
+ {
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ break;
+ }
+ case AlphaQuantum:
+ {
+ SetAlphaPixelComponent(q,GetAlphaPixelComponent(p));
+ break;
+ }
+ default:
+ break;
}
+ p++;
+ q++;
+ }
if (SyncAuthenticPixels(image,exception) == MagickFalse)
break;
}
*/
if (scene == 0)
{
- length=GetQuantumExtent(canvas_image,quantum_info,quantum_types[0]);
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
count=ReadBlob(image,length,pixels);
}
- for (i=0; i < channels; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- for (y=0; y < (ssize_t) image->extract_info.height; y++)
- {
- register const PixelPacket
- *restrict p;
+ register const PixelPacket
+ *restrict p;
- register ssize_t
- x;
+ register PixelPacket
+ *restrict q;
- register PixelPacket
- *restrict q;
+ register ssize_t
+ x;
- if (count != (ssize_t) length)
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
{
- ThrowFileException(exception,CorruptImageError,
- "UnexpectedEndOfFile",image->filename);
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ p++;
+ q++;
}
- q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
- exception);
- if (q == (PixelPacket *) NULL)
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,2,6);
+ if (status == MagickFalse)
break;
- length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,exception);
- if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ }
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
break;
- if (((y-image->extract_info.y) >= 0) &&
- ((y-image->extract_info.y) < (ssize_t) image->rows))
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
{
- p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
- canvas_image->columns,1,exception);
- q=GetAuthenticPixels(image,0,y-image->extract_info.y,
- image->columns,1,exception);
- if ((p == (const PixelPacket *) NULL) ||
- (q == (PixelPacket *) NULL))
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,3,6);
+ if (status == MagickFalse)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,4,6);
+ if (status == MagickFalse)
+ break;
+ }
+ if (image->matte != MagickFalse)
+ {
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
{
- switch(quantum_types[i])
+ p=GetVirtualPixels(canvas_image,
+ canvas_image->extract_info.x,0,canvas_image->columns,1,
+ exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
{
- case RedQuantum:
- {
- SetRedPixelComponent(q,GetRedPixelComponent(p));
- break;
- }
- case GreenQuantum:
- {
- SetGreenPixelComponent(q,GetGreenPixelComponent(p));
- break;
- }
- case BlueQuantum:
- {
- SetBluePixelComponent(q,GetBluePixelComponent(p));
- break;
- }
- case OpacityQuantum:
- case AlphaQuantum:
- {
- SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
- break;
- }
- default:
- break;
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ p++;
+ q++;
}
- p++;
- q++;
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
}
- if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,5,6);
+ if (status == MagickFalse)
break;
}
- count=ReadBlob(image,length,pixels);
}
- if (image->previous == (Image *) NULL)
- {
- status=SetImageProgress(image,LoadImageTag,(i+1),5);
- if (status == MagickFalse)
- break;
- }
- }
if (image->previous == (Image *) NULL)
{
- status=SetImageProgress(image,LoadImageTag,5,5);
+ status=SetImageProgress(image,LoadImageTag,6,6);
if (status == MagickFalse)
break;
}
/*
Partition interlacing: RRRRRR..., GGGGGG..., BBBBBB...
*/
- for (i=0; i < channels; i++)
+ AppendImageFormat("R",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ for (i=0; i < image->offset; i++)
+ if (ReadBlobByte(image) == EOF)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
{
- sfx[0]=image_info->magick[i];
- AppendImageFormat(sfx,image->filename);
- status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
- if (status == MagickFalse)
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
{
- canvas_image=DestroyImageList(canvas_image);
- image=DestroyImageList(image);
- return((Image *) NULL);
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetRedPixelComponent(q,GetRedPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
}
- if (i == 0)
- for (j=0; j < image->offset; j++)
- if (ReadBlobByte(image) == EOF)
- {
- ThrowFileException(exception,CorruptImageError,
- "UnexpectedEndOfFile",image->filename);
- break;
- }
- length=GetQuantumExtent(canvas_image,quantum_info,quantum_types[i]);
- for (j=0; j < (ssize_t) scene; j++)
- for (y=0; y < (ssize_t) image->extract_info.height; y++)
- if (ReadBlob(image,length,pixels) != (ssize_t) length)
- {
- ThrowFileException(exception,CorruptImageError,
- "UnexpectedEndOfFile",image->filename);
- break;
- }
count=ReadBlob(image,length,pixels);
- for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ }
+ if (image->previous == (Image *) NULL)
{
- register const PixelPacket
- *restrict p;
+ status=SetImageProgress(image,LoadImageTag,1,5);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("G",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,GreenQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
- register ssize_t
- x;
+ register PixelPacket
+ *restrict q;
- register PixelPacket
- *restrict q;
+ register ssize_t
+ x;
- if (count != (ssize_t) length)
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetGreenPixelComponent(q,GetGreenPixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,2,5);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("B",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
+ {
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,BlueQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
{
ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
break;
}
- q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
- exception);
- if (q == (PixelPacket *) NULL)
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
break;
- length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,exception);
- if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
+ {
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
+ canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
+ {
+ SetBluePixelComponent(q,GetBluePixelComponent(p));
+ p++;
+ q++;
+ }
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,3,5);
+ if (status == MagickFalse)
break;
- if (((y-image->extract_info.y) >= 0) &&
- ((y-image->extract_info.y) < (ssize_t) image->rows))
+ }
+ if (image->matte != MagickFalse)
+ {
+ (void) CloseBlob(image);
+ AppendImageFormat("A",image->filename);
+ status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+ if (status == MagickFalse)
{
- p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,0,
- canvas_image->columns,1,exception);
- q=GetAuthenticPixels(image,0,y-image->extract_info.y,
- image->columns,1,exception);
- if ((p == (const PixelPacket *) NULL) ||
- (q == (PixelPacket *) NULL))
+ canvas_image=DestroyImageList(canvas_image);
+ image=DestroyImageList(image);
+ return((Image *) NULL);
+ }
+ length=GetQuantumExtent(canvas_image,quantum_info,AlphaQuantum);
+ for (i=0; i < (ssize_t) scene; i++)
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ if (ReadBlob(image,length,pixels) != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ for (y=0; y < (ssize_t) image->extract_info.height; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ register PixelPacket
+ *restrict q;
+
+ register ssize_t
+ x;
+
+ if (count != (ssize_t) length)
+ {
+ ThrowFileException(exception,CorruptImageError,
+ "UnexpectedEndOfFile",image->filename);
break;
- for (x=0; x < (ssize_t) image->columns; x++)
+ }
+ q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1,
+ exception);
+ if (q == (PixelPacket *) NULL)
+ break;
+ length=ImportQuantumPixels(canvas_image,(CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,exception);
+ if (SyncAuthenticPixels(canvas_image,exception) == MagickFalse)
+ break;
+ if (((y-image->extract_info.y) >= 0) &&
+ ((y-image->extract_info.y) < (ssize_t) image->rows))
{
- switch(quantum_types[i])
+ p=GetVirtualPixels(canvas_image,canvas_image->extract_info.x,
+ 0,canvas_image->columns,1,exception);
+ q=GetAuthenticPixels(image,0,y-image->extract_info.y,
+ image->columns,1,exception);
+ if ((p == (const PixelPacket *) NULL) ||
+ (q == (PixelPacket *) NULL))
+ break;
+ for (x=0; x < (ssize_t) image->columns; x++)
{
- case RedQuantum:
- {
- SetRedPixelComponent(q,GetRedPixelComponent(p));
- break;
- }
- case GreenQuantum:
- {
- SetGreenPixelComponent(q,GetGreenPixelComponent(p));
- break;
- }
- case BlueQuantum:
- {
- SetBluePixelComponent(q,GetBluePixelComponent(p));
- break;
- }
- case OpacityQuantum:
- case AlphaQuantum:
- {
- SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
- break;
- }
- default:
- break;
+ SetOpacityPixelComponent(q,GetOpacityPixelComponent(p));
+ p++;
+ q++;
}
- p++;
- q++;
- }
- if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
+ break;
+ }
+ count=ReadBlob(image,length,pixels);
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,LoadImageTag,4,5);
+ if (status == MagickFalse)
break;
}
- count=ReadBlob(image,length,pixels);
}
- if (image->previous == (Image *) NULL)
- {
- status=SetImageProgress(image,LoadImageTag,(i+1),5);
- if (status == MagickFalse)
- break;
- }
- if (i != (channels-1))
- (void) CloseBlob(image);
- }
+ (void) CloseBlob(image);
if (image->previous == (Image *) NULL)
{
status=SetImageProgress(image,LoadImageTag,5,5);
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% RegisterRGBImage() adds attributes for the RGB or RGBA image format to
+% RegisterRGBImage() adds attributes for the RGB image format to
% the list of supported formats. The attributes include the image format
% tag, a method to read and/or write the format, whether the format
% supports the saving of more than one frame to the same file or blob,
entry->description=ConstantString("Raw red, green, and blue samples");
entry->module=ConstantString("RGB");
(void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("RBG");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw red, blue, and green samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("GRB");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw green, red, and blue samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("GBR");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw green, blue, and red samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("BRG");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw blue, red, and green samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("BGR");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw blue, green, and red samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
- entry=SetMagickInfo("BGRA");
- entry->decoder=(DecodeImageHandler *) ReadRGBImage;
- entry->encoder=(EncodeImageHandler *) WriteRGBImage;
- entry->raw=MagickTrue;
- entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw blue, green, red and alpha samples");
- entry->module=ConstantString("RGB");
- (void) RegisterMagickInfo(entry);
entry=SetMagickInfo("RGBA");
entry->decoder=(DecodeImageHandler *) ReadRGBImage;
entry->encoder=(EncodeImageHandler *) WriteRGBImage;
entry->description=ConstantString("Raw red, green, blue, and alpha samples");
entry->module=ConstantString("RGB");
(void) RegisterMagickInfo(entry);
+ return(MagickImageCoderSignature);
entry=SetMagickInfo("RGBO");
entry->decoder=(DecodeImageHandler *) ReadRGBImage;
entry->encoder=(EncodeImageHandler *) WriteRGBImage;
entry->raw=MagickTrue;
entry->endian_support=MagickTrue;
- entry->description=ConstantString("Raw red, green, blue, and opacity "
- "samples");
+ entry->description=ConstantString("Raw red, green, blue, and opacity samples");
entry->module=ConstantString("RGB");
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% UnregisterRGBImage() removes format registrations made by the
-% RGB module from the list of supported formats.
+% UnregisterRGBImage() removes format registrations made by the RGB module
+% from the list of supported formats.
%
% The format of the UnregisterRGBImage method is:
%
{
(void) UnregisterMagickInfo("RGBO");
(void) UnregisterMagickInfo("RGBA");
- (void) UnregisterMagickInfo("BGR");
- (void) UnregisterMagickInfo("BGRA");
- (void) UnregisterMagickInfo("BRG");
- (void) UnregisterMagickInfo("GBR");
- (void) UnregisterMagickInfo("GRB");
- (void) UnregisterMagickInfo("RBG");
(void) UnregisterMagickInfo("RGB");
}
\f
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% WriteRGBImage() writes an image to a file in the RGB or RGBA rasterfile
-% format.
+% WriteRGBImage() writes an image to a file in the RGB, RGBA, or RGBO
+% rasterfile format.
%
% The format of the WriteRGBImage method is:
%
-% MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image)
+% MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
+% Image *image)
%
% A description of each parameter follows.
%
% o image: The image.
%
*/
-static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,Image *image)
+static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
+ Image *image)
{
- ssize_t
- y;
-
MagickBooleanType
status;
*quantum_info;
QuantumType
- quantum_type,
- quantum_types[4];
-
- register ssize_t
- i;
+ quantum_type;
ssize_t
- count;
+ count,
+ y;
size_t
length;
unsigned char
*pixels;
- size_t
- channels;
-
/*
Allocate memory for pixels.
*/
return(status);
}
quantum_type=RGBQuantum;
- for (i=0; i < 4; i++)
- {
- if (image_info->magick[i] == '\0')
- break;
- switch(image_info->magick[i])
+ if (LocaleCompare(image_info->magick,"RGBA") == 0)
{
- case 'R': quantum_types[i]=RedQuantum; break;
- case 'G': quantum_types[i]=GreenQuantum; break;
- case 'B': quantum_types[i]=BlueQuantum; break;
- case 'A':
- {
- quantum_types[i]=AlphaQuantum;
- quantum_type=RGBAQuantum;
- break;
- }
- case 'O':
- {
- quantum_types[i]=OpacityQuantum;
- quantum_type=RGBOQuantum;
- break;
- }
- default:
- break;
+ quantum_type=RGBAQuantum;
+ image->matte=MagickTrue;
+ }
+ if (LocaleCompare(image_info->magick,"RGBO") == 0)
+ {
+ quantum_type=RGBOQuantum;
+ image->matte=MagickTrue;
}
- }
- channels=i;
scene=0;
do
{
case NoInterlace:
default:
{
- CacheView
- *image_view;
-
- PixelPacket
- px;
-
- Quantum
- *qx[4];
-
/*
No interlacing: RGBRGBRGBRGBRGBRGB...
*/
- image_view=AcquireCacheView(image);
for (y=0; y < (ssize_t) image->rows; y++)
{
- register ssize_t
- x;
-
- register PixelPacket
- *restrict q;
+ register const PixelPacket
+ *restrict p;
- q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
- &image->exception);
- if (q == (PixelPacket *) NULL)
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
break;
- for (x=0; x < (ssize_t) image->columns; x++)
- {
- px=(*q);
- qx[0]=&(q->red);
- qx[1]=&(q->green);
- qx[2]=&(q->blue);
- qx[3]=&(q->opacity);
- for (i=0; i < channels; i++)
- switch (quantum_types[i])
- {
- case RedQuantum: *qx[i]=px.red; break;
- case GreenQuantum: *qx[i]=px.green; break;
- case BlueQuantum: *qx[i]=px.blue; break;
- case AlphaQuantum: *qx[i]=px.opacity; break;
- case OpacityQuantum: *qx[i]=px.opacity; break;
- default: break;
- }
- q++;
- }
- length=ExportQuantumPixels(image,image_view,quantum_info,quantum_type,
- pixels,&image->exception);
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,quantum_type,pixels,&image->exception);
count=WriteBlob(image,length,pixels);
if (count != (ssize_t) length)
break;
break;
}
}
- image_view=DestroyCacheView(image_view);
break;
}
case LineInterlace:
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
break;
- for (i=0; i < (ssize_t) channels; i++)
- {
- length=ExportQuantumPixels(image,(const CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,&image->exception);
- count=WriteBlob(image,length,pixels);
- if (count != (ssize_t) length)
- break;
- }
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ if (quantum_type == RGBAQuantum)
+ {
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (quantum_type == RGBOQuantum)
+ {
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,OpacityQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
if (image->previous == (Image *) NULL)
{
status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
/*
Plane interlacing: RRRRRR...GGGGGG...BBBBBB...
*/
- for (i=0; i < (ssize_t) channels; i++)
+ for (y=0; y < (ssize_t) image->rows; y++)
{
- for (y=0; y < (ssize_t) image->rows; y++)
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
{
- register const PixelPacket
- *restrict p;
+ status=SetImageProgress(image,SaveImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
- if (p == (const PixelPacket *) NULL)
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,2,6);
+ if (status == MagickFalse)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,&image->exception);
- count=WriteBlob(image,length,pixels);
- if (count != (ssize_t) length)
+ }
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,3,6);
+ if (status == MagickFalse)
break;
}
- if (image->previous == (Image *) NULL)
+ if (quantum_type == RGBAQuantum)
+ {
+ for (y=0; y < (ssize_t) image->rows; y++)
{
- status=SetImageProgress(image,SaveImageTag,(i+1),5);
- if (status == MagickFalse)
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
}
- }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,5,6);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ if (image_info->interlace == PartitionInterlace)
+ (void) CopyMagickString(image->filename,image_info->filename,
+ MaxTextExtent);
if (image->previous == (Image *) NULL)
{
- status=SetImageProgress(image,SaveImageTag,5,5);
+ status=SetImageProgress(image,SaveImageTag,6,6);
if (status == MagickFalse)
break;
}
}
case PartitionInterlace:
{
- char
- sfx[] = {0, 0};
-
/*
Partition interlacing: RRRRRR..., GGGGGG..., BBBBBB...
*/
- for (i=0; i < (ssize_t) channels; i++)
+ AppendImageFormat("R",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
{
- sfx[0]=image_info->magick[i];
- AppendImageFormat(sfx,image->filename);
- status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
- AppendBinaryBlobMode,&image->exception);
- if (status == MagickFalse)
- return(status);
- for (y=0; y < (ssize_t) image->rows; y++)
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,RedQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
{
- register const PixelPacket
- *restrict p;
+ status=SetImageProgress(image,SaveImageTag,1,6);
+ if (status == MagickFalse)
+ break;
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("G",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
- if (p == (const PixelPacket *) NULL)
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,GreenQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,2,6);
+ if (status == MagickFalse)
break;
- length=ExportQuantumPixels(image,(const CacheView *) NULL,
- quantum_info,quantum_types[i],pixels,&image->exception);
- count=WriteBlob(image,length,pixels);
- if (count != (ssize_t) length)
+ }
+ (void) CloseBlob(image);
+ AppendImageFormat("B",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
+ {
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,BlueQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
+ break;
+ }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,3,6);
+ if (status == MagickFalse)
break;
}
- if (image->previous == (Image *) NULL)
+ (void) CloseBlob(image);
+ if (quantum_type == RGBAQuantum)
+ {
+ (void) CloseBlob(image);
+ AppendImageFormat("A",image->filename);
+ status=OpenBlob(image_info,image,scene == 0 ? WriteBinaryBlobMode :
+ AppendBinaryBlobMode,&image->exception);
+ if (status == MagickFalse)
+ return(status);
+ for (y=0; y < (ssize_t) image->rows; y++)
{
- status=SetImageProgress(image,SaveImageTag,(i+1),5);
- if (status == MagickFalse)
+ register const PixelPacket
+ *restrict p;
+
+ p=GetVirtualPixels(image,0,y,image->columns,1,
+ &image->exception);
+ if (p == (const PixelPacket *) NULL)
+ break;
+ length=ExportQuantumPixels(image,(const CacheView *) NULL,
+ quantum_info,AlphaQuantum,pixels,&image->exception);
+ count=WriteBlob(image,length,pixels);
+ if (count != (ssize_t) length)
break;
}
- (void) CloseBlob(image);
- }
+ if (image->previous == (Image *) NULL)
+ {
+ status=SetImageProgress(image,SaveImageTag,5,6);
+ if (status == MagickFalse)
+ break;
+ }
+ }
+ (void) CloseBlob(image);
(void) CopyMagickString(image->filename,image_info->filename,
MaxTextExtent);
if (image->previous == (Image *) NULL)
{
- status=SetImageProgress(image,SaveImageTag,5,5);
+ status=SetImageProgress(image,SaveImageTag,6,6);
if (status == MagickFalse)
break;
}
<configure name="NAME" value="ImageMagick"/>
<configure name="LIB_VERSION" value="0x663"/>
<configure name="LIB_VERSION_NUMBER" value="6,6,3,9"/>
- <configure name="RELEASE_DATE" value="2010-08-20"/>
+ <configure name="RELEASE_DATE" value="2010-08-22"/>
<configure name="CONFIGURE" value="./configure "/>
<configure name="PREFIX" value="/usr/local"/>
<configure name="EXEC-PREFIX" value="/usr/local"/>
{ "BMP3", "BMP" },
{ "B", "RAW" },
{ "BRF", "BRAILLE" },
- { "BGR", "RGB" },
- { "BGRA", "RGB" },
- { "BRG", "RGB" },
+ { "BGRA", "BGR" },
{ "CMYKA", "CMYK" },
{ "C", "RAW" },
{ "CAL", "CALS" },
{ "G3", "FAX" },
{ "GIF87", "GIF" },
{ "G", "RAW" },
- { "GBR", "RGB" },
- { "GRB", "RGB" },
{ "GRANITE", "MAGICK" },
{ "GROUP4", "TIFF" },
{ "K25", "DNG" },
{ "RADIAL-GRADIENT", "GRADIENT" },
{ "RAF", "DNG" },
{ "RAS", "SUN" },
- { "RBG", "RGB" },
{ "RGBA", "RGB" },
{ "RGBO", "RGB" },
{ "R", "RAW" },
#define WIN32_LEAN_AND_MEAN
#define VC_EXTRALEAN
#define _CRT_SECURE_NO_DEPRECATE 1
+#define _WIN32_WINNT 0x0501
#include <windows.h>
#include <wchar.h>
#include <winuser.h>
#define SetGreenPixelComponent(q,value) ((q)->green=(value))
#define SetBluePixelComponent(q,value) ((q)->blue=(value))
#define SetOpacityPixelComponent(q,value) ((q)->opacity=(value))
-#define SetAlphaPixelComponent(q,value) ((q)->opacity=(QuantumRange-(value)))
+#define SetAlphaPixelComponent(q,value) \
+ ((q)->opacity=(Quantum) (QuantumRange-(value)))
#define SetIndexPixelComponent(q,value) ((q)->index=(value))
#define GetGrayPixelComponent(p) ((p)->red)
CbYCrYQuantum,
CbYCrQuantum,
CbYCrAQuantum,
- CMYKOQuantum
+ CMYKOQuantum,
+ BGRQuantum
} QuantumType;
typedef struct _QuantumInfo
#define MagickLibAddendum "-9"
#define MagickLibInterface 4
#define MagickLibMinInterface 4
-#define MagickReleaseDate "2010-08-20"
+#define MagickReleaseDate "2010-08-22"
#define MagickChangeDate "20100815"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#define MagickFeatures "OpenMP "