<html>
<head>
<base href="https://bugs.documentfoundation.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - FILESAVE: PNG: Incorrect transparency after roundtrip"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=141269#c12">Comment # 12</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - FILESAVE: PNG: Incorrect transparency after roundtrip"
href="https://bugs.documentfoundation.org/show_bug.cgi?id=141269">bug 141269</a>
from <span class="vcard"><a class="email" href="mailto:caolanm@redhat.com" title="Caolán McNamara <caolanm@redhat.com>"> <span class="fn">Caolán McNamara</span></a>
</span></b>
<pre>The icons in the sidebar in GTK3 are set by passing a block of png data to gtk
which them renders the png internally, so those showing broken to me indicates
that we didn't give them the correct png data, I feel there are a few separate
places not working.
so, currently internally in bitmap data we are supposed to be using opacity and
not transparency so a fully transparent pixel has an alpha of 0 ?
vcl/source/filter/png/PngImageReader.cxx:309 has:
pScanAlpha[iAlpha++] = 0xFF - pRow[i + 3]
is that then an out of date conversion from opacity to transparency.
vcl/source/filter/png/pngwrite.cxx:566 has a matching:
255 - mpMaskAccess->GetIndexFromData(pScanlineMask, nX)
to go the other direction
vcl/headless/svpgdi.cxx has some "make upper layers use standard alpha" places
where it does some toggling which might be wrong now (?)
if BitmapEx::AdjustTransparency input cTrans is transparency then should
nNewTrans = nTrans + *pAScan convert *pAScan from opacity to transparency
before the addition ?</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>