Changeset 23989 for trunk/psLib/src/imageops/psImagePixelExtract.c
- Timestamp:
- Apr 28, 2009, 11:21:56 AM (17 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/imageops/psImagePixelExtract.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/imageops/psImagePixelExtract.c
r21183 r23989 419 419 } 420 420 421 #define PSIMAGE_CUT_VERTICAL(TYPE) \422 case PS_TYPE_##TYPE: {\423 psVectorMaskType* maskVecData = NULL; \424 for (psS32 c = col0; c < col1; c++) { \425 ps##TYPE *imgData = input->data.TYPE[row0] + c; \426 ps##TYPE *imgVecData = imgVec->data.TYPE; \427 if (maskVec != NULL) { \421 #define PSIMAGE_CUT_VERTICAL(TYPE) \ 422 case PS_TYPE_##TYPE: { \ 423 psVectorMaskType* maskVecData = NULL; \ 424 for (psS32 c = col0; c < col1; c++) { \ 425 ps##TYPE *imgData = input->data.TYPE[row0] + c; \ 426 ps##TYPE *imgVecData = imgVec->data.TYPE; \ 427 if (maskVec != NULL) { \ 428 428 maskVecData = maskVec->data.PS_TYPE_VECTOR_MASK_DATA; \ 429 429 maskData = &mask->data.PS_TYPE_IMAGE_MASK_DATA[row0][c]; /* XXX double check this... */ \ 430 430 /** old entry: maskData = (psMaskType* )(mask->data.PS_TYPE_IMAGE_MASK_DATA[row0]) + c; */ \ 431 } \ 432 for (psS32 r = row0; r < row1; r++) { \ 433 *imgVecData = *imgData; \ 434 imgVecData ++; \ 435 imgData += inCols; \ 436 if (maskVecData != NULL) { \ 437 *maskVecData = (*maskData & maskVal); \ 438 maskVecData ++; \ 439 maskData += inCols; \ 440 } \ 441 } \ 442 psVectorStats(myStats, imgVec, NULL, maskVec, 0xff); \ 443 *outData = psStatsGetValue(myStats, statistic); \ 444 if (outPosition != NULL) { \ 445 outPosition->x = c; \ 446 outPosition->y = row0; \ 447 outPosition += delta; \ 448 } \ 449 outData += delta; \ 450 } \ 451 break; \ 431 } \ 432 for (psS32 r = row0; r < row1; r++) { \ 433 *imgVecData = *imgData; \ 434 imgVecData ++; \ 435 imgData += inCols; \ 436 if (maskVecData != NULL) { \ 437 *maskVecData = (*maskData & maskVal); \ 438 maskVecData ++; \ 439 maskData += inCols; \ 440 } \ 441 } \ 442 if (!psVectorStats(myStats, imgVec, NULL, maskVec, 0xff)) { \ 443 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); \ 444 psFree(out); \ 445 out = NULL; \ 446 break; \ 447 } \ 448 *outData = psStatsGetValue(myStats, statistic); \ 449 if (outPosition != NULL) { \ 450 outPosition->x = c; \ 451 outPosition->y = row0; \ 452 outPosition += delta; \ 453 } \ 454 outData += delta; \ 455 } \ 456 break; \ 452 457 } 453 458 … … 466 471 char* typeStr; 467 472 PS_TYPE_NAME(typeStr,type); 468 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 469 _("Specified psImage type, %s, is not supported."), 470 typeStr); 473 psError(PS_ERR_BAD_PARAMETER_TYPE, true, _("Specified psImage type, %s, is not supported."), typeStr); 471 474 psFree(out); 472 475 out = NULL; … … 534 537 } 535 538 536 psVectorStats(myStats, imgVec, NULL, maskVec, 0xff); 539 if (!psVectorStats(myStats, imgVec, NULL, maskVec, 0xff)) { 540 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 541 psFree (out); 542 out = NULL; 543 break; 544 } 537 545 *outData = psStatsGetValue(myStats, statistic); 538 546 if (outPosition != NULL) { … … 933 941 934 942 for (psS32 r = 0; r < numOut; r++) { 935 psVectorStats(myStats, buffer[r], NULL, bufferMask[r], 0xff); 943 if (!psVectorStats(myStats, buffer[r], NULL, bufferMask[r], 0xff)){ 944 psError(PS_ERR_UNKNOWN, false, "failure to measure stats"); 945 psFree(out); 946 out = NULL; 947 break; 948 } 936 949 outData[r] = psStatsGetValue(myStats, statistic); 937 950 }
Note:
See TracChangeset
for help on using the changeset viewer.
