aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ext_depends/imageformats/README.md
blob: c9c0b36d63b584dfb6c1dd51333c524c815c75af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# imageformats  [![Build Status](https://travis-ci.org/lgvz/imageformats.svg)](https://travis-ci.org/lgvz/imageformats)

- Returned image data is 8-bit except PNG can also return 16-bit.
- Image data can be converted to Y, YA, RGB or RGBA.
- There's a `@nogc` remake: [imagefmt](https://github.com/tjhann/imagefmt)

**Decoders:**
- PNG. 8-bit and 16-bit interlaced and paletted (+`tRNS` chunk)
- TGA. 8-bit non-paletted
- BMP. 8-bit uncompressed
- JPEG. baseline

**Encoders:**
- PNG. 8-bit non-paletted non-interlaced
- TGA. 8-bit non-paletted rle-compressed
- BMP. 8-bit uncompressed

```D
import imageformats;

void main() {
    IFImage i0 = read_image("peruna.png");
    IFImage i1 = read_image("peruna.png", ColFmt.YA);   // convert
    IFImage i2 = read_image("peruna.png", ColFmt.RGB);

    write_image("peruna.tga", i0.w, i0.h, i0.pixels);
    write_image("peruna.tga", i0.w, i0.h, i0.pixels, ColFmt.RGBA);

    int w, h, chans;
    read_image_info("peruna.png", w, h, chans);

    // format specific functions
    PNG_Header hdr = read_png_header("peruna.png");
    IFImage i3 = read_jpeg("porkkana.jpg");
    write_tga("porkkana.tga", i3.w, i3.h, i3.pixels);
}
```