test.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <stdlib.h>
  2. #include "qcms.h"
  3. #include "sum.h"
  4. int main()
  5. {
  6. unsigned char srct[3] = { 221, 79, 129};
  7. unsigned char outt[3];
  8. #define LENGTH 256*256*256
  9. static unsigned char src[LENGTH*3];
  10. static unsigned char output[LENGTH*3];
  11. int i,j,k,l=0;
  12. qcms_profile *input_profile, *output_profile;
  13. qcms_transform *transform;
  14. input_profile = qcms_profile_from_path("lcms_test/input.icc");
  15. output_profile = qcms_profile_from_path("lcms_test/output.icc");
  16. transform = qcms_transform_create(input_profile, QCMS_DATA_RGB_8, output_profile, QCMS_DATA_RGB_8, QCMS_INTENT_PERCEPTUAL);
  17. //transform = qcms_create_transform(output_profile, input_profile);
  18. for (i=0; i<256; i++) {
  19. for (j=0; j<256; j++) {
  20. for (k=0; k<256; k++) {
  21. src[l++] = i;
  22. src[l++] = j;
  23. src[l++] = k;
  24. }
  25. }
  26. }
  27. qcms_transform_data(transform, srct, outt, 1);
  28. qcms_transform_data(transform, src, output, LENGTH);
  29. for (i=256*40*3; i<30+256*40*3; i+=3) {
  30. printf("(%d %d %d) -> output (%d %d %d)\n", src[i], src[i+1], src[i+2],
  31. output[i],
  32. output[i+1],
  33. output[i+2]);
  34. }
  35. qcms_transform_release(transform);
  36. qcms_profile_release(input_profile);
  37. qcms_profile_release(output_profile);
  38. if (sum(output, LENGTH*3) != 0xca89c51c) {
  39. printf("DATA CHANGED: %lx\n", sum(output, LENGTH*3));
  40. abort();
  41. }
  42. return 0;
  43. }