/src/os/android/ftk_image_android_decoder.c

http://ftk.googlecode.com/ · C · 42 lines · 34 code · 8 blank · 0 comment · 13 complexity · 8e7d90bfe6db8edc5816f1cfbcfaef85 MD5 · raw file

  1. #include "ftk_jni.h"
  2. #include "ftk_image_android_decoder.h"
  3. static Ret ftk_image_android_decoder_match(FtkImageDecoder* thiz, const char* filename)
  4. {
  5. return_val_if_fail(filename != NULL, RET_FAIL);
  6. return (strstr(filename, "bmp") != NULL
  7. || strstr(filename, ".png") != NULL
  8. || strstr(filename, ".jpg") != NULL
  9. || strstr(filename, ".jpeg") != NULL) ? RET_OK : RET_FAIL;
  10. }
  11. static FtkBitmap* ftk_image_android_decoder_decode(FtkImageDecoder* thiz, const char* filename)
  12. {
  13. return_val_if_fail(ftk_image_android_decoder_match(thiz, filename) == RET_OK, NULL);
  14. filename += 8;
  15. return Android_LoadImage(filename);
  16. }
  17. static void ftk_image_android_decoder_destroy(FtkImageDecoder* thiz)
  18. {
  19. if(thiz != NULL)
  20. {
  21. FTK_ZFREE(thiz, sizeof(thiz));
  22. }
  23. }
  24. FtkImageDecoder* ftk_image_android_decoder_create(void)
  25. {
  26. FtkImageDecoder* thiz = (FtkImageDecoder*)FTK_ZALLOC(sizeof(FtkImageDecoder));
  27. if(thiz != NULL)
  28. {
  29. thiz->match = ftk_image_android_decoder_match;
  30. thiz->decode = ftk_image_android_decoder_decode;
  31. thiz->destroy = ftk_image_android_decoder_destroy;
  32. }
  33. return thiz;
  34. }