diff --git a/Magick++/demo/button.cpp b/Magick++/demo/button.cpp
index 858a48b..118cdfc 100644
--- a/Magick++/demo/button.cpp
+++ b/Magick++/demo/button.cpp
@@ -73,6 +73,8 @@
button.borderColor( border );
button.frame( "6x6+3+3" );
+ button.depth( 8 );
+
// Quantize to desired colors
// button.quantizeTreeDepth(8);
button.quantizeDither(false);
diff --git a/Magick++/demo/demo.cpp b/Magick++/demo/demo.cpp
index 86cd48d..e9cb4b1 100644
--- a/Magick++/demo/demo.cpp
+++ b/Magick++/demo/demo.cpp
@@ -498,9 +498,11 @@
montage_image.composite( logo, placement, OverCompositeOp );
}
+ for_each( montage.begin(), montage.end(), depthImage(8) );
+ for_each( montage.begin(), montage.end(), matteImage( false ) );
+ for_each( montage.begin(), montage.end(), compressTypeImage( RLECompression) );
+
cout << "Writing image \"demo_out.miff\" ..." << endl;
- montage_image.matte( false );
- montage_image.compressType( RLECompression );
writeImages(montage.begin(),montage.end(),"demo_out.miff");
// Uncomment following lines to display image to screen
diff --git a/Magick++/demo/gravity.cpp b/Magick++/demo/gravity.cpp
index b0f0e7b..d2468ad 100644
--- a/Magick++/demo/gravity.cpp
+++ b/Magick++/demo/gravity.cpp
@@ -39,6 +39,7 @@
list<Image> animation;
Image base( Geometry(600,600), Color("white") );
+ base.depth(8);
base.strokeColor("#600");
base.fillColor(Color());
base.draw( DrawableLine( 300,100, 300,500 ) );
diff --git a/Magick++/demo/piddle.cpp b/Magick++/demo/piddle.cpp
index f189587..ec6007f 100644
--- a/Magick++/demo/piddle.cpp
+++ b/Magick++/demo/piddle.cpp
@@ -155,6 +155,7 @@
// image.write( "piddle.mvg" );
cout << "Writing image \"piddle_out.miff\" ..." << endl;
+ image.depth( 8 );
image.compressType( RLECompression );
image.write( "piddle_out.miff" );
cout << "Writing MVG metafile \"piddle_out.mvg\" ..." << endl;
diff --git a/Magick++/demo/shapes.cpp b/Magick++/demo/shapes.cpp
index e472b08..f2c9616 100644
--- a/Magick++/demo/shapes.cpp
+++ b/Magick++/demo/shapes.cpp
@@ -101,6 +101,7 @@
//
cout << "Writing image \"shapes_out.miff\" ..." << endl;
+ image.depth( 8 );
image.compressType( RLECompression );
image.write( "shapes_out.miff" );
diff --git a/coders/rgb.c b/coders/rgb.c
index 519b2f5..8398708 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -186,7 +186,13 @@
image->matte=MagickTrue;
channels=4;
}
- if (LocaleCompare(image_info->magick,"RGBO") == 0)
+ else if (LocaleCompare(image_info->magick,"BGRA") == 0)
+ {
+ quantum_type=BGRAQuantum;
+ image->matte=MagickTrue;
+ channels=4;
+ }
+ else if (LocaleCompare(image_info->magick,"RGBO") == 0)
{
quantum_type=RGBOQuantum;
image->matte=MagickTrue;
@@ -684,6 +690,15 @@
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->format_type=ExplicitFormatType;
+ 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;
@@ -730,6 +745,7 @@
(void) UnregisterMagickInfo("RGBO");
(void) UnregisterMagickInfo("RGBA");
(void) UnregisterMagickInfo("BGR");
+ (void) UnregisterMagickInfo("BGRA");
(void) UnregisterMagickInfo("BRG");
(void) UnregisterMagickInfo("GBR");
(void) UnregisterMagickInfo("GRB");
diff --git a/magick/quantum.c b/magick/quantum.c
index 8792224..a55f195 100644
--- a/magick/quantum.c
+++ b/magick/quantum.c
@@ -306,6 +306,7 @@
case IndexAlphaQuantum: packet_size=2; break;
case RGBQuantum: packet_size=3; break;
case RGBAQuantum: packet_size=4; break;
+ case BGRAQuantum: packet_size=4; break;
case RGBOQuantum: packet_size=4; break;
case CMYKQuantum: packet_size=4; break;
case CMYKAQuantum: packet_size=5; break;
diff --git a/magick/quantum.h b/magick/quantum.h
index 685ed11..8727bf0 100644
--- a/magick/quantum.h
+++ b/magick/quantum.h
@@ -64,6 +64,7 @@
OpacityQuantum,
RedQuantum,
RGBAQuantum,
+ BGRAQuantum,
RGBOQuantum,
RGBQuantum,
YellowQuantum,
diff --git a/wand/drawtest.c b/wand/drawtest.c
index 21f47fa..a7cf557 100644
--- a/wand/drawtest.c
+++ b/wand/drawtest.c
@@ -440,6 +440,18 @@
if (status == MagickFalse)
ThrowWandException(canvas);
/*
+ Set pixel depth to 8.
+ */
+ status=MagickSetImageDepth(canvas,8);
+ if (status == MagickFalse)
+ ThrowWandException(canvas);
+ /*
+ Set RLE compression.
+ */
+ status=MagickSetImageCompression(canvas,RLECompression);
+ if (status == MagickFalse)
+ ThrowWandException(canvas);
+ /*
Save image to file.
*/
status=MagickWriteImage(canvas,filename);
diff --git a/wand/wandtest.c b/wand/wandtest.c
index 0866350..f33b1ce 100644
--- a/wand/wandtest.c
+++ b/wand/wandtest.c
@@ -564,6 +564,13 @@
status=MagickResizeImage(magick_wand,50,50,UndefinedFilter,1.0);
if (status == MagickFalse)
ThrowAPIException(magick_wand);
+ MagickResetIterator(magick_wand);
+ while (MagickNextImage(magick_wand) != False)
+ {
+ MagickSetImageDepth(magick_wand,8);
+ MagickSetImageCompression(magick_wand,RLECompression);
+ }
+ MagickResetIterator(magick_wand);
(void) MagickSetIteratorIndex(magick_wand,4);
(void) fprintf(stdout,"Utilitize pixel iterator to draw diagonal...\n");
iterator=NewPixelIterator(magick_wand);