Odin SolutionsOdin Solutions
🖼️
Steganographia
Week 9, 2026
All SolutionsLoad image, adjust pixel format, use as cstring | greenya | Odin Solutions
package main
import "core:fmt"
import "core:strings"
import rl "vendor:raylib"
message_png_bytes := #load("message.png")
main :: proc () {
img := rl.LoadImageFromMemory(".png", raw_data(message_png_bytes), i32(len(message_png_bytes)))
rl.ImageFormat(&img, .UNCOMPRESSED_R8G8B8)
defer rl.UnloadImage(img)
bytes_per_pixel :: 3 // bytes per pixel for UNCOMPRESSED_R8G8B8 is 3
bytes_count := bytes_per_pixel * int(img.width) * int(img.height)
message := strings.string_from_null_terminated_ptr(cast ([^]u8) img.data, bytes_count)
fmt.println("-------- message { --------")
fmt.println(message)
fmt.println("-------- } message --------")
}