From b9dce69b28870cb1036c6f91870cd4a207836c70 Mon Sep 17 00:00:00 2001
From: ap
Date: Wed, 2 Aug 2006 20:32:45 +0000
Subject: [PATCH] Fix by Mitz Pettel, reviewed by Darin.
- fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3438
incorrect display of transparent 1x1 PNGs
Test: fast/replaced/image-solid-color-with-alpha.html
* platform/mac/ImageMac.mm:
(WebCore::Image::checkForSolidColor): Changed to divide each color component
by the alpha component. You need to do that since the bitmap context has
premultiplied alpha but m_solidColor should be non-premultiplied.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@15758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
LayoutTests/ChangeLog | 16 +++++++++++
...e-solid-color-with-alpha-expected.checksum | 1 +
.../image-solid-color-with-alpha-expected.png | Bin 0 -> 12564 bytes
.../image-solid-color-with-alpha-expected.txt | 22 +++++++++++++++
.../image-solid-color-with-alpha.html | 4 +++
.../fast/replaced/img-1x1-expected.checksum | 1 -
.../fast/replaced/img-1x1-expected.png | Bin 14989 -> 0 bytes
.../fast/replaced/img-1x1-expected.txt | 25 ------------------
LayoutTests/fast/replaced/img-1x1.html | 11 --------
WebCore/ChangeLog | 14 ++++++++++
WebCore/platform/mac/ImageMac.mm | 5 +++-
11 files changed, 61 insertions(+), 38 deletions(-)
create mode 100644 LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.checksum
create mode 100644 LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.png
create mode 100644 LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.txt
create mode 100644 LayoutTests/fast/replaced/image-solid-color-with-alpha.html
delete mode 100644 LayoutTests/fast/replaced/img-1x1-expected.checksum
delete mode 100644 LayoutTests/fast/replaced/img-1x1-expected.png
delete mode 100644 LayoutTests/fast/replaced/img-1x1-expected.txt
delete mode 100644 LayoutTests/fast/replaced/img-1x1.html
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index c8c50658ed3a..27997b83e6db 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,19 @@
+2006-08-02 Alexey Proskuryakov
+
+ Reviewed by Darin.
+
+ - pixel test for http://bugzilla.opendarwin.org/show_bug.cgi?id=3438
+ incorrect display of transparent 1x1 PNGs
+
+ * fast/replaced/image-solid-color-with-alpha-expected.checksum: Added.
+ * fast/replaced/image-solid-color-with-alpha-expected.png: Added.
+ * fast/replaced/image-solid-color-with-alpha-expected.txt: Added.
+ * fast/replaced/image-solid-color-with-alpha.html: Added.
+ * fast/replaced/img-1x1-expected.checksum: Removed.
+ * fast/replaced/img-1x1-expected.png: Removed.
+ * fast/replaced/img-1x1-expected.txt: Removed.
+ * fast/replaced/img-1x1.html: Removed.
+
2006-08-01 Darin Adler
- updated a test affected by changes to the DumpRenderTree tool
diff --git a/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.checksum b/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.checksum
new file mode 100644
index 000000000000..9805ab6aaea5
--- /dev/null
+++ b/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.checksum
@@ -0,0 +1 @@
+31bbbc113d0d41bd5516b09d1973480f
\ No newline at end of file
diff --git a/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.png b/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.png
new file mode 100644
index 0000000000000000000000000000000000000000..b49e451500e331a338719f208c7a41ce82cc0687
GIT binary patch
literal 12564
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
RgKt2Y8d(~a|Mi!@{Ra;jF=PM$
literal 0
HcmV?d00001
diff --git a/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.txt b/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.txt
new file mode 100644
index 000000000000..8ec84f21f624
--- /dev/null
+++ b/LayoutTests/fast/replaced/image-solid-color-with-alpha-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+ RenderBlock {P} at (0,0) size 784x18
+ RenderText {#text} at (0,0) size 53x18
+ text run at (0,0) width 53: "Test for "
+ RenderInline {A} at (0,0) size 60x18 [color=#0000EE]
+ RenderText {#text} at (53,0) size 60x18
+ text run at (53,0) width 60: "bug 3438"
+ RenderText {#text} at (113,0) size 202x18
+ text run at (113,0) width 202: ": rendering of 1x1 PNG images."
+ RenderBlock {P} at (0,34) size 784x18
+ RenderText {#text} at (0,0) size 283x18
+ text run at (0,0) width 283: "The two squares should have the same color:"
+ RenderBlock (anonymous) at (0,68) size 784x54
+ RenderImage {IMG} at (0,0) size 50x50
+ RenderText {#text} at (50,36) size 4x18
+ text run at (50,36) width 4: " "
+ RenderImage {IMG} at (54,0) size 50x50
+ RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/replaced/image-solid-color-with-alpha.html b/LayoutTests/fast/replaced/image-solid-color-with-alpha.html
new file mode 100644
index 000000000000..2ddcdb87a030
--- /dev/null
+++ b/LayoutTests/fast/replaced/image-solid-color-with-alpha.html
@@ -0,0 +1,4 @@
+Test for bug 3438: rendering of 1x1 PNG images.
+The two squares should have the same color:
+
+
diff --git a/LayoutTests/fast/replaced/img-1x1-expected.checksum b/LayoutTests/fast/replaced/img-1x1-expected.checksum
deleted file mode 100644
index 70d94a78081b..000000000000
--- a/LayoutTests/fast/replaced/img-1x1-expected.checksum
+++ /dev/null
@@ -1 +0,0 @@
-856eb8e8e0ee4834a3f069e5e710f8b6
\ No newline at end of file
diff --git a/LayoutTests/fast/replaced/img-1x1-expected.png b/LayoutTests/fast/replaced/img-1x1-expected.png
deleted file mode 100644
index 1659482a417cd1647590360cfa45556ec5705c8d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 14989
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 for bug 3438: rendering of 1x1 PNG images.
-
- Should be uniform color (comparing PNG with GIF and JPEG): |
-
-
- |
-
-
- |
-
-
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 6ddb6dc05c83..442e525ebbd7 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2006-08-02 Mitz Pettel
+
+ Reviewed by Darin.
+
+ - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3438
+ incorrect display of transparent 1x1 PNGs
+
+ Test: fast/replaced/image-solid-color-with-alpha.html
+
+ * platform/mac/ImageMac.mm:
+ (WebCore::Image::checkForSolidColor): Changed to divide each color component
+ by the alpha component. You need to do that since the bitmap context has
+ premultiplied alpha but m_solidColor should be non-premultiplied.
+
2006-08-02 Adam Roben
Reviewed by Brady.
diff --git a/WebCore/platform/mac/ImageMac.mm b/WebCore/platform/mac/ImageMac.mm
index 9250d82f7243..9e651ae8f549 100644
--- a/WebCore/platform/mac/ImageMac.mm
+++ b/WebCore/platform/mac/ImageMac.mm
@@ -118,7 +118,10 @@ void Image::checkForSolidColor()
GraphicsContext(bmap).setCompositeOperation(CompositeCopy);
CGRect dst = { {0, 0}, {1, 1} };
CGContextDrawImage(bmap, dst, image);
- m_solidColor = Color(int(pixel[0] * 255), int(pixel[1] * 255), int(pixel[2] * 255), int(pixel[3] * 255));
+ if (pixel[3] == 0)
+ m_solidColor = Color(0, 0, 0, 0);
+ else
+ m_solidColor = Color(int(pixel[0] / pixel[3] * 255), int(pixel[1] / pixel[3] * 255), int(pixel[2] / pixel[3] * 255), int(pixel[3] * 255));
m_isSolidColor = true;
CFRelease(bmap);
}
--
2.36.0