summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dmagick/Color.d10
-rw-r--r--dmagick/ImageView.d5
2 files changed, 13 insertions, 2 deletions
diff --git a/dmagick/Color.d b/dmagick/Color.d
index 94b6906..7223d81 100644
--- a/dmagick/Color.d
+++ b/dmagick/Color.d
@@ -79,11 +79,19 @@ class Color
this.packet = packet;
}
- PixelPacket pixelPacket()
+ package PixelPacket pixelPacket() const
{
return *packet;
}
+ package void pixelPacket(PixelPacket packet)
+ {
+ this.packet.red = packet.red;
+ this.packet.green = packet.green;
+ this.packet.blue = packet.blue;
+ this.packet.opacity = packet.opacity;
+ }
+
override bool opEquals(Object obj)
{
Color color = cast(Color)obj;
diff --git a/dmagick/ImageView.d b/dmagick/ImageView.d
index fbce73c..709c81f 100644
--- a/dmagick/ImageView.d
+++ b/dmagick/ImageView.d
@@ -362,9 +362,12 @@ struct Pixels
*/
int opApply(int delegate(ref Color) dg)
{
+ Color color = new Color();
+
foreach ( ref PixelPacket pixel; pixels )
{
- Color color = new Color(pixel);
+ color.pixelPacket = pixel;
+
int result = dg(color);
pixel = color.pixelPacket;