std.image.image

Die Fassade über allen Format-Units — für neun von zehn Fällen die einzige Unit, die man importieren muss. ImageDecode erkennt das Format selbst und ruft den passenden Dekoder auf; ImageDecodeFromMem tut dasselbe für einen bereits geladenen Puffer.

Die Accessoren ImageGetWidth, ImageGetHeight, ImageGetChannels und ImagePixelAt ersparen den Umgang mit den Struct-Offsets aus std.image.core.

Es gibt keine Encoder. Bilder werden gelesen, analysiert und programmatisch erzeugt — gespeichert wird nicht.

Wer nur ein Format braucht, importiert dessen Unit direkt (std.image.png); das spart Übersetzungszeit und unnötige Abhängigkeiten.

std.image — Übersicht · Bildverarbeitung · Standard Library


Schnittstelle

Signatur
ImageDecodeFromMem(buf: int64, len: int64, img: int64): int64
ImageDecode(path: int64, plen: int64, img: int64): int64
ImageFree(img: int64): void
ImageGetWidth(img: int64): int64
ImageGetHeight(img: int64): int64
ImageGetChannels(img: int64): int64
ImagePixelAt(img: int64, x: int64, y: int64): int64

Beispiel

import std.image.image;
import std.image.core;
import std.io;

fn main(): int64 {
    var img: int64 := GrfImageAlloc(0, 0);
    if (ImageDecode("foto.jpg"c, 0, img) == 0) {
        PrintLn("Laden fehlgeschlagen");
        GrfImageFree(img);
        return 1;
    }

    var w: int64 := ImageGetWidth(img);
    var h: int64 := ImageGetHeight(img);
    var px: int64 := ImagePixelAt(img, w / 2, h / 2);   // 0xRRGGBBAA

    ImageFree(img);
    return 0;
}

Quelle: std/image/image.lyx · geprüft mit lyxc 1.0.21A · Stand 2026-08-12

Codebeispiele geprüft: gegen lyxc 1.2.5C übersetzt (Prüflauf 2026-09-08 über die gesamte Doku: 574 Vollprogramme, 0 echte Fehler; zusätzlich 5159 Aufrufe gegen die pub fn-Signaturen in aurum/std gehalten, 0 Abweichungen).


Letzte Aktualisierung: 2026-08-30 (Dateistand)