<div dir="ltr">I think I might not be explaining this very well.<div><br></div><div>I want to create a bitmap image where each pixel is RGBA with 8 bits (UInt8) per channel, and I want to specify the exact color for every pixel. I do not know how to do that.</div><div><div><br></div><div>Also, for my specific application, I need to take an array of floating point numbers and say, “Hey, the underlying bits that make up the IEEE-754 representation of these numbers are exactly the bits that I want to use for the colors of the pixels.” I do not know how to do that in Swift.</div><div><br></div><div>In C I would malloc a buffer, write to it as (float*), then pass it to a function which takes (char*) and saves a PNG. Thus there is only one allocation, the buffer is filled with float values, and the exact bit-pattern is interpreted as RGBA pixels.</div><div><br></div><div>How can I do the equivalent in Swift?</div><div><br></div><div>Nevin</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 15, 2017 at 2:43 PM, Jens Alfke <span dir="ltr">&lt;<a href="mailto:jens@mooseyard.com" target="_blank">jens@mooseyard.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><span class=""><blockquote type="cite"><div>On Mar 15, 2017, at 11:07 AM, Nevin Brackett-Rozinsky via swift-users &lt;<a href="mailto:swift-users@swift.org" target="_blank">swift-users@swift.org</a>&gt; wrote:</div><br class="m_-3017803286472174899Apple-interchange-newline"><div><div style="font-family:Alegreya-Regular;font-size:15px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Ideally I’d like to create the bitmap image without having to allocate a second buffer. The sole purpose of the Float array is for creating this image, so I’d like to directly use its bytes as the pixels data. I expect this will involve some Unsafe[…] APIs in Swift, though I don’t know exactly how.</div></div></blockquote><div><br></div></span><div>AFAIK there aren’t any pixmap formats that use floats. If you want to produce ARGB pixels, then emit your data in that format, i.e. as a [UInt8]. No unsafe stuff needed.</div><span class=""><br><blockquote type="cite"><div style="font-family:Alegreya-Regular;font-size:15px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">And yes, I am on an Apple platform. Despite reading boatloads of Core Graphics documentation, I still can’t make heads or tails out of how to turn a pre-existing array into the backing data for a bitmap image. This part is only Swift-related in the sense that I am trying to do it in Swift, so if there’s a better place to ask/learn about it I’d appreciate being pointed there.</div></blockquote><br></span></div><div>Either Apple’s developer forums, or the cocoa-dev mailing list hosted at <a href="http://lists.apple.com" target="_blank">http://lists.apple.com</a>.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>—Jens</div><br></font></span></div></blockquote></div><br></div>