Merge "Fix dst rect calculation"

am: 83c89bc149

Change-Id: I403dd6ffefd96700f69cf518bdb85c749b319ce4
gugelfrei
Chong Zhang 5 years ago committed by android-build-merger
commit 3912c53090

@ -725,12 +725,6 @@ status_t ImageDecoder::onOutputReceived(
}
converter.setSrcColorSpace(standard, range, transfer);
int32_t dstLeft, dstTop, dstRight, dstBottom;
dstLeft = mTilesDecoded % mGridCols * width;
dstTop = mTilesDecoded / mGridCols * height;
dstRight = dstLeft + width - 1;
dstBottom = dstTop + height - 1;
int32_t crop_left, crop_top, crop_right, crop_bottom;
if (!outputFormat->findRect("crop", &crop_left, &crop_top, &crop_right, &crop_bottom)) {
crop_left = crop_top = 0;
@ -738,15 +732,25 @@ status_t ImageDecoder::onOutputReceived(
crop_bottom = height - 1;
}
int32_t crop_width, crop_height;
crop_width = crop_right - crop_left + 1;
crop_height = crop_bottom - crop_top + 1;
int32_t dstLeft, dstTop, dstRight, dstBottom;
dstLeft = mTilesDecoded % mGridCols * crop_width;
dstTop = mTilesDecoded / mGridCols * crop_height;
dstRight = dstLeft + crop_width - 1;
dstBottom = dstTop + crop_height - 1;
// apply crop on bottom-right
// TODO: need to move this into the color converter itself.
if (dstRight >= mWidth) {
crop_right = mWidth - dstLeft - 1;
dstRight = dstLeft + crop_right;
crop_right = crop_left + mWidth - dstLeft - 1;
dstRight = mWidth - 1;
}
if (dstBottom >= mHeight) {
crop_bottom = mHeight - dstTop - 1;
dstBottom = dstTop + crop_bottom;
crop_bottom = crop_top + mHeight - dstTop - 1;
dstBottom = mHeight - 1;
}
*done = (++mTilesDecoded >= mTargetTiles);

Loading…
Cancel
Save