> On Mar 15, 2017, at 9:56 AM, Nevin Brackett-Rozinsky via swift-users
> <swift-users@swift.org> wrote:
>
> For one of my programs, I need to take an array of Floats and use the
> underlying bytes as the RGBA data for a bitmap image. In particular, the 32
> bits of each Float must be treated as the color of the corresponding pixel.
> So the result is an image of height 1 and width the length of the array.
Make a pixmap, an array of UInt8 that’s 4x longer than your original array,
where the elements are interpreted as R, G, B, A, R, G, B, A… Then fill it in
based on the original float values.
> In particular, I need to be able to save the image as a PNG file, then later
> load it from disk and reconstruct each Float from its pixel, with no loss or
> change to the value of the Floats. So, how do I go from [Float] to a bitmap
> image suitable for saving to disk, without altering the underlying bytes?
You’ll need to call some external image-encoding library, passing it your
pixmap. If you’re on an Apple platform try ImageIO. If not, or if you want to
be cross-platform, try libpng.
—Jens
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users