Re: JPG and PNG decoder

2012-06-21 Thread Stewart Gordon
On 18/06/2012 00:49, cal wrote: snip ubyte[] data = some data; Image img = new Img!(Px.R8G8B8)(width, height, data); Image? Img? img.write(mypng.png); It uses adaptive filtering, and should work with the pixel formats supported by the image class (except for the 16 bit ones I've just

Re: JPG and PNG decoder

2012-06-21 Thread cal
On Thursday, 21 June 2012 at 17:58:47 UTC, Stewart Gordon wrote: On 18/06/2012 00:49, cal wrote: snip ubyte[] data = some data; Image img = new Img!(Px.R8G8B8)(width, height, data); Image? Img? img.write(mypng.png); Image is the interface, Img the templated class that does all the work.

Re: JPG and PNG decoder

2012-06-21 Thread Felix Hufnagel
it's not that hard to write a baseline jpeg encoder. it's not harder than decoding. there are many tutorials and examples online. Am 17.06.2012, 09:55 Uhr, schrieb cal callumena...@gmail.com: On Sunday, 17 June 2012 at 07:07:35 UTC, Philippe Sigaud wrote: Still, I'm interested in writing

Re: JPG and PNG decoder

2012-06-17 Thread Philippe Sigaud
On 6/16/2012 12:10 PM, cal wrote: I've been working on decoders for simple (baseline) JPEG and PNG's, mostly for my own amusement, and they seem to work ok now, so if anyone has need of some simple D modules to load these formats you can grab them here:

Re: JPG and PNG decoder

2012-06-17 Thread cal
On Sunday, 17 June 2012 at 07:07:35 UTC, Philippe Sigaud wrote: Still, I'm interested in writing a JPEG/PNG to disk from a ubyte[3][][], or whatever. Do you mean that you want to encode a ubyte array to disk as JPEG/PNG? Encoding a JPEG would be a bit of work I think, the format's kind of a

Re: JPG and PNG decoder

2012-06-17 Thread Chris NS
I second the request for a PNG encoder. You just saved me a lot of trouble, as I was about to implement my own PNG loader... and now I don't have to. ^_^ I'll glance over your code in full sometime and see if I notice any readily apparent improvements.

Re: JPG and PNG decoder

2012-06-17 Thread bearophile
cal: I've been working on decoders for simple (baseline) JPEG and PNG's, mostly for my own amusement, and they seem to work ok now, so if anyone has need of some simple D modules to load these formats you can grab them here: https://github.com/callumenator/imaged Suggestions on the code: -

Re: JPG and PNG decoder

2012-06-17 Thread Philippe Sigaud
On Sun, Jun 17, 2012 at 9:55 AM, cal callumena...@gmail.com wrote: On Sunday, 17 June 2012 at 07:07:35 UTC, Philippe Sigaud wrote: Still, I'm interested in writing a JPEG/PNG to disk from a ubyte[3][][], or whatever. Do you mean that you want to encode a ubyte array to disk as JPEG/PNG?

Re: JPG and PNG decoder

2012-06-17 Thread David
Am 16.06.2012 21:10, schrieb cal: I've been working on decoders for simple (baseline) JPEG and PNG's, mostly for my own amusement, and they seem to work ok now, so if anyone has need of some simple D modules to load these formats you can grab them here: https://github.com/callumenator/imaged

Re: JPG and PNG decoder

2012-06-17 Thread Stewart Gordon
On 17/06/2012 08:55, cal wrote: snip If you don't care too much about compression level, you simply zlib compress the data, write it out by image row/scanline, include appropriate header and chunk info, and you're done. snip Not quite. You need to encode it by scanline, add the filter byte

Re: JPG and PNG decoder

2012-06-17 Thread Philippe Sigaud
On Sun, Jun 17, 2012 at 3:25 PM, Stewart Gordon smjg_1...@yahoo.com wrote: FWIW a while ago I wrote a simple experimental program that generates an image and encodes it as a PNG.  And I've just tweaked it and updated it to D2 (attached).  It supports only truecolour with 8 bits per sample, but

Re: JPG and PNG decoder

2012-06-17 Thread Adam D. Ruppe
I have a simple png writer too if that's of use to you https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff image.d and png.d. Somewhat suboptimal to use, since I ported some of my old C code almost directly to it, and it still works like C.

Re: JPG and PNG decoder

2012-06-17 Thread cal
On Sunday, 17 June 2012 at 12:15:36 UTC, bearophile wrote: Suggestions on the code: - Try to use final switches. - switch cases don't need (), so instead of case(foo): write case foo: - Try to add const/immutable/pure/nothrow where possible. Bye, bearophile Problem with final switches in

Re: JPG and PNG decoder

2012-06-17 Thread cal
On Sunday, 17 June 2012 at 12:35:41 UTC, David wrote: Cool so I don't need to use my stb_image binding ( https://bitbucket.org/dav1d/gl-utils/src/0b97f77c14d7/stb_image ) anylonger! I used stb_image with C++ opengl projects, and it was great. stb_truetype is another gem, I would love to

Re: JPG and PNG decoder

2012-06-17 Thread Stewart Gordon
On 17/06/2012 14:38, Philippe Sigaud wrote: On Sun, Jun 17, 2012 at 3:25 PM, Stewart Gordon smjg_1...@yahoo.com wrote: FWIW a while ago I wrote a simple experimental program that generates an image and encodes it as a PNG. And I've just tweaked it and updated it to D2 (attached). It supports

Re: JPG and PNG decoder

2012-06-17 Thread cal
On Sunday, 17 June 2012 at 23:17:54 UTC, Stewart Gordon wrote: You two should fuse it into one module, to give us loading/writing. That would be quite cool. I don't know how much of the code will need rewriting in order to support interlacing or all PNG colour types/depths. But I also

Re: JPG and PNG decoder

2012-06-17 Thread Chris NS
On Sunday, 17 June 2012 at 20:10:28 UTC, cal wrote: though I have worlds of trouble with const-ness, I will endeavour to add those guarantees :) What I usually do, unless it's just an obvious case, is write code without concern for const-ness, then write a thorough test and step through one

JPG and PNG decoder

2012-06-16 Thread cal
I've been working on decoders for simple (baseline) JPEG and PNG's, mostly for my own amusement, and they seem to work ok now, so if anyone has need of some simple D modules to load these formats you can grab them here: https://github.com/callumenator/imaged Notes: - Will load 8-bit baseline

Re: JPG and PNG decoder

2012-06-16 Thread Walter Bright
On 6/16/2012 12:10 PM, cal wrote: I've been working on decoders for simple (baseline) JPEG and PNG's, mostly for my own amusement, and they seem to work ok now, so if anyone has need of some simple D modules to load these formats you can grab them here: https://github.com/callumenator/imaged