]> granicus.if.org Git - php/commitdiff
Revert and correct previous fix, this does not loose precision and convert back to int
authorKalle Sommer Nielsen <kalle@php.net>
Tue, 4 Aug 2009 11:19:07 +0000 (11:19 +0000)
committerKalle Sommer Nielsen <kalle@php.net>
Tue, 4 Aug 2009 11:19:07 +0000 (11:19 +0000)
ext/gd/gd.c

index 45267c4b6bffcb43bfd9e84d4b88c3c6d57abc48..230b0d452a33bc01fcbb16298c22c37ffd3a97d3 100644 (file)
@@ -3956,10 +3956,10 @@ PHP_FUNCTION(imagepstext)
        bg_al = gdImageAlpha(bg_img, _bg);
 
        for (i = 0; i < aa_steps; i++) {
-               rd = bg_rd + (int) (fg_rd - bg_rd) / aa_steps * (i + 1);
-               gr = bg_gr + (int) (fg_gr - bg_gr) / aa_steps * (i + 1);
-               bl = bg_bl + (int) (fg_bl - bg_bl) / aa_steps * (i + 1);
-               al = bg_al + (int) (fg_al - bg_al) / aa_steps * (i + 1);
+               rd = (int) (bg_rd + (double) (fg_rd - bg_rd) / aa_steps * (i + 1));
+               gr = (int) (bg_gr + (double) (fg_gr - bg_gr) / aa_steps * (i + 1));
+               bl = (int) (bg_bl + (double) (fg_bl - bg_bl) / aa_steps * (i + 1));
+               al = (int) (bg_al + (double) (fg_al - bg_al) / aa_steps * (i + 1));
                aa[i] = gdImageColorResolveAlpha(bg_img, rd, gr, bl, al);
        }