@@ -662,43 +662,7 @@ static inline int getPixelOverflowTC(gdImagePtr im, const int x, const int y, co
662
662
}
663
663
return c ;
664
664
} else {
665
- register int border = 0 ;
666
-
667
- if (y < im -> cy1 ) {
668
- border = im -> tpixels [0 ][im -> cx1 ];
669
- goto processborder ;
670
- }
671
-
672
- if (y < im -> cy1 ) {
673
- border = im -> tpixels [0 ][im -> cx1 ];
674
- goto processborder ;
675
- }
676
-
677
- if (y > im -> cy2 ) {
678
- if (x >= im -> cx1 && x <= im -> cx1 ) {
679
- border = im -> tpixels [im -> cy2 ][x ];
680
- goto processborder ;
681
- } else {
682
- return gdTrueColorAlpha (0 , 0 , 0 , 127 );
683
- }
684
- }
685
-
686
- /* y is bound safe at this point */
687
- if (x < im -> cx1 ) {
688
- border = im -> tpixels [y ][im -> cx1 ];
689
- goto processborder ;
690
- }
691
-
692
- if (x > im -> cx2 ) {
693
- border = im -> tpixels [y ][im -> cx2 ];
694
- }
695
-
696
- processborder :
697
- if (border == im -> transparent ) {
698
- return gdTrueColorAlpha (0 , 0 , 0 , 127 );
699
- } else {
700
- return gdTrueColorAlpha (gdTrueColorGetRed (border ), gdTrueColorGetGreen (border ), gdTrueColorGetBlue (border ), 127 );
701
- }
665
+ return bgColor ;
702
666
}
703
667
}
704
668
@@ -713,42 +677,7 @@ static inline int getPixelOverflowPalette(gdImagePtr im, const int x, const int
713
677
}
714
678
return colorIndex2RGBA (c );
715
679
} else {
716
- register int border = 0 ;
717
- if (y < im -> cy1 ) {
718
- border = gdImageGetPixel (im , im -> cx1 , 0 );
719
- goto processborder ;
720
- }
721
-
722
- if (y < im -> cy1 ) {
723
- border = gdImageGetPixel (im , im -> cx1 , 0 );
724
- goto processborder ;
725
- }
726
-
727
- if (y > im -> cy2 ) {
728
- if (x >= im -> cx1 && x <= im -> cx1 ) {
729
- border = gdImageGetPixel (im , x , im -> cy2 );
730
- goto processborder ;
731
- } else {
732
- return gdTrueColorAlpha (0 , 0 , 0 , 127 );
733
- }
734
- }
735
-
736
- /* y is bound safe at this point */
737
- if (x < im -> cx1 ) {
738
- border = gdImageGetPixel (im , im -> cx1 , y );
739
- goto processborder ;
740
- }
741
-
742
- if (x > im -> cx2 ) {
743
- border = gdImageGetPixel (im , im -> cx2 , y );
744
- }
745
-
746
- processborder :
747
- if (border == im -> transparent ) {
748
- return gdTrueColorAlpha (0 , 0 , 0 , 127 );
749
- } else {
750
- return colorIndex2RGBcustomA (border , 127 );
751
- }
680
+ return bgColor ;
752
681
}
753
682
}
754
683
@@ -1306,11 +1235,11 @@ static gdImagePtr gdImageScaleBilinearPalette(gdImagePtr im, const unsigned int
1306
1235
f_b1 , f_b2 , f_b3 , f_b4 ,
1307
1236
f_a1 , f_a2 , f_a3 , f_a4 ;
1308
1237
1309
- /* zero for the background color, nothig gets outside anyway */
1238
+ /* 0 for bgColor; (n,m) is supposed to be valid anyway */
1310
1239
pixel1 = getPixelOverflowPalette (im , n , m , 0 );
1311
- pixel2 = getPixelOverflowPalette (im , n + 1 , m , 0 );
1312
- pixel3 = getPixelOverflowPalette (im , n , m + 1 , 0 );
1313
- pixel4 = getPixelOverflowPalette (im , n + 1 , m + 1 , 0 );
1240
+ pixel2 = getPixelOverflowPalette (im , n + 1 , m , pixel1 );
1241
+ pixel3 = getPixelOverflowPalette (im , n , m + 1 , pixel1 );
1242
+ pixel4 = getPixelOverflowPalette (im , n + 1 , m + 1 , pixel1 );
1314
1243
1315
1244
f_r1 = gd_itofx (gdTrueColorGetRed (pixel1 ));
1316
1245
f_r2 = gd_itofx (gdTrueColorGetRed (pixel2 ));
@@ -1398,11 +1327,11 @@ static gdImagePtr gdImageScaleBilinearTC(gdImagePtr im, const unsigned int new_w
1398
1327
f_b1 , f_b2 , f_b3 , f_b4 ,
1399
1328
f_a1 , f_a2 , f_a3 , f_a4 ;
1400
1329
dwSrcTotalOffset = m + n ;
1401
- /* 0 for bgColor, nothing gets outside anyway */
1330
+ /* 0 for bgColor; (n,m) is supposed to be valid anyway */
1402
1331
pixel1 = getPixelOverflowTC (im , n , m , 0 );
1403
- pixel2 = getPixelOverflowTC (im , n + 1 , m , 0 );
1404
- pixel3 = getPixelOverflowTC (im , n , m + 1 , 0 );
1405
- pixel4 = getPixelOverflowTC (im , n + 1 , m + 1 , 0 );
1332
+ pixel2 = getPixelOverflowTC (im , n + 1 , m , pixel1 );
1333
+ pixel3 = getPixelOverflowTC (im , n , m + 1 , pixel1 );
1334
+ pixel4 = getPixelOverflowTC (im , n + 1 , m + 1 , pixel1 );
1406
1335
1407
1336
f_r1 = gd_itofx (gdTrueColorGetRed (pixel1 ));
1408
1337
f_r2 = gd_itofx (gdTrueColorGetRed (pixel2 ));
0 commit comments