<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Hi Adam,<br><br>On 6/11/2010 8:32 PM, Adam Goode wrote:<br>> On 06/11/2010 08:16 AM, tom nygen wrote:<br>>    <br>>> Thank you for making OpenSlide available. It is very useful for me to<br>>> deal effectively with multiple scanner manufacturers. I've just tried<br>>> some examples and have the following questions:<br>>><br>>>      <br>> Glad it's working well for you!<br>><br>>    <br>>> 1. There seems to be only one pixel data format retrieved from the<br>>> slides and that is pre-multiplied ARGB. Since most of the slide formats<br>>> (known to me) have no alpha channel, and if they do, RGB components are<br>>> already pre-mulitplied with the alpha channel, why can't we use RGB<br>>> (24-bit) instead of ARGB (32-bit) format when we get a region from the<br>>> slide? This would ease integration for many people having codes handling<br>>> 24-bit RGB format.<br>>><br>>>      <br>> In OpenSlide, we set the alpha channel to 0 when we are beyond the edge<br>> of the slide. For some formats, including MIRAX, the alpha channel is<br>> set to 0 where we don't have any data. I'm attaching an example PNG file<br>> to illustrate this.<br>><br>><br>>    <br>I see your point with the ARGB format.<br>We have a problem with Mirax slides that we are still investigating. The <br>same regions retrieved from the manufacturer Windows native API and from <br>OpenSlide are very much different in term of color level. Once we know <br>where the problems are, we may provide you with a test case.<br>>> 2. Since there could be an endian issue from one platform to the other,<br>>> are there macros helping to make it easier to retrieve color components<br>>> R, G, B from the 32-bit pixel data?<br>>><br>>>      <br>> Hmmm, there should be no endian issue here, the data is stored in native<br>> endian format. This psuedo-code illustrates that:<br>><br>>   a = (pixel&  0xFF)>>  24<br>>   r = (pixel&  0xFF)>>  16<br>>   g = (pixel&  0xFF)>>  8<br>>   b = pixel&  0xFF<br>><br>> Note that this means there is one 32-bit word per pixel, not four 8-bit<br>> bytes.<br>><br>>    <br>Thank you for the method to extract the components (I got your corrected <br>version).<br><br>Regards,<br>Tom<br>> Have fun with OpenSlide,<br>><br>> Adam<br>>    <br><br><br>                                               <br /><hr />Hotmail is redefining busy with tools for the New Busy. Get more from your inbox. <a href='http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_2' target='_new'>See how.</a></body>
</html>