/decoders/image/all.d

http://github.com/wilkie/djehuty · D · 59 lines · 35 code · 15 blank · 9 comment · 8 complexity · f39aaab30317db5f7b6d9555a5d48177 MD5 · raw file

  1. module decoders.image.all;
  2. import graphics.bitmap;
  3. import core.string;
  4. import core.stream;
  5. import decoders.decoder;
  6. import decoders.image.decoder;
  7. public import decoders.image.png;
  8. public import decoders.image.bmp;
  9. public import decoders.image.gif;
  10. public import decoders.image.jpeg;
  11. // TIFF
  12. // TGA
  13. // JPEG 2000
  14. // MNG
  15. // PCX
  16. // RAW
  17. StreamData runAllDecoders(ref ImageDecoder imageCodec, Stream stream, ref Bitmap view) {
  18. StreamData ret;
  19. ulong pos = stream.position;
  20. imageCodec = new PNGDecoder();
  21. if ((ret = imageCodec.decode(stream, view)) != StreamData.Invalid) {
  22. return ret;
  23. }
  24. stream.position = pos;
  25. imageCodec = new BMPDecoder();
  26. if ((ret = imageCodec.decode(stream, view)) != StreamData.Invalid) {
  27. return ret;
  28. }
  29. stream.position = pos;
  30. imageCodec = new GIFDecoder();
  31. if ((ret = imageCodec.decode(stream, view)) != StreamData.Invalid) {
  32. return ret;
  33. }
  34. stream.position = pos;
  35. imageCodec = new JPEGDecoder();
  36. if ((ret = imageCodec.decode(stream, view)) != StreamData.Invalid) {
  37. return ret;
  38. }
  39. imageCodec = null;
  40. return StreamData.Invalid;
  41. }
  42. // Codecs:
  43. //mixin(CreateCodecArray!());
  44. //