From 2ae3e9f216271ee6a3a9aa1e10bcb818aed3ee74 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Sat, 9 Mar 2024 20:47:10 +0000 Subject: Fix case where extracted rectangle is entirely above the input image git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@4863 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- editor/pamcut.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'editor') diff --git a/editor/pamcut.c b/editor/pamcut.c index 908d43fb..c495c11b 100644 --- a/editor/pamcut.c +++ b/editor/pamcut.c @@ -677,8 +677,8 @@ extractRowsGen(const struct pam * const inpamP, int row; /* Write out top padding */ - if (0 - toprow > 0) - writeBlackRows(outpamP, 0 - toprow); + if (toprow < 0) + writeBlackRows(outpamP, MIN(0, bottomrow+1) - toprow); createRowCutter(inpamP, outpamP, leftcol, rightcol, &rowCutterP); @@ -762,12 +762,9 @@ extractRowsPbm(const struct pam * const inpamP, makeBlackPbmRow(bitrow, totalWidth); /* Initialize row buffer to all black for top and side padding */ - if (toprow < 0) { - int row; - for (row = 0; row < 0 - toprow; ++row) - pbm_writepbmrow_packed(outpamP->file, bitrow, - outpamP->width, 0); - } + /* Write out top padding */ + for (row = toprow; row < MIN(0, bottomrow+1); ++row) + pbm_writepbmrow_packed(outpamP->file, bitrow, outpamP->width, 0); for (row = 0; row < inpamP->height; ++row){ if (row >= toprow && row <= bottomrow) { -- cgit 1.4.1