Skip to content

php8 deprecationwarnings #89

@wdoekes

Description

@wdoekes

Here's a bunch of changes I did to get rid of various warnings.

Not everything is fixed: strftime will need something better. And the $num_points is also a thing...

I also needed fix to #88.

diff --git a/lib/WeatherMap.functions.php b/lib/WeatherMap.functions.php
index 3c62b13..1967ca5 100644
--- a/lib/WeatherMap.functions.php
+++ b/lib/WeatherMap.functions.php
@@ -269,7 +269,7 @@ function myimagecolorallocate($image, $red, $green, $blue)
 	// it's possible that we're being called early - just return straight away, in that case
 	if(!isset($image)) return(-1);
 	
-	$existing=imagecolorexact($image, $red, $green, $blue);
+	$existing=imagecolorexact($image, round($red), round($green), round($blue));
 
 	if ($existing > -1)
 		return $existing;
@@ -1875,7 +1875,7 @@ function wimagefilledrectangle( $image ,$x1, $y1, $x2, $y2, $color )
 	$r = $r/255; $g=$g/255; $b=$b/255; $a=(127-$a)/127;
 
 	metadump("FRECT $x1 $y1 $x2 $y2 $r $g $b $a");
-	return(imagefilledrectangle( $image ,$x1, $y1, $x2, $y2, $color ));
+	return(imagefilledrectangle( $image, round($x1), round($y1), round($x2), round($y2), $color ));
 }
 
 function wimagerectangle( $image ,$x1, $y1, $x2, $y2, $color )
@@ -1887,7 +1887,7 @@ function wimagerectangle( $image ,$x1, $y1, $x2, $y2, $color )
 	$r = $r/255; $g=$g/255; $b=$b/255; $a=(127-$a)/127;
 
 	metadump("RECT $x1 $y1 $x2 $y2 $r $g $b $a");
-	return(imagerectangle( $image ,$x1, $y1, $x2, $y2, $color ));
+	return(imagerectangle( $image, round($x1), round($y1), round($x2), round($y2), $color ));
 }
 
 function wimagepolygon($image, $points, $num_points, $color)
@@ -1907,7 +1907,13 @@ function wimagepolygon($image, $points, $num_points, $color)
 	
 	metadump("POLY $num_points ".$pts." $r $g $b $a");
 
-	return(imagepolygon($image, $points, $num_points, $color));
+	// Removing $num_points creates weird boxes. This needs a better fix.
+	// Likely count($points) is sometimes not equal to $num_points*2
+	//assert(count($points) == ($num_points*2));
+	if (count($points) != ($num_points*2)) {
+		return @imagepolygon($image, $points, $num_points, $color);
+	}
+	return imagepolygon($image, $points, $color);
 }
 
 function wimagefilledpolygon($image, $points, $num_points, $color)
@@ -1927,7 +1933,13 @@ function wimagefilledpolygon($image, $points, $num_points, $color)
 	
 	metadump("FPOLY $num_points ".$pts." $r $g $b $a");
 
-	return(imagefilledpolygon($image, $points, $num_points, $color));
+	// Removing $num_points creates weird boxes. This needs a better fix.
+	// Likely count($points) is sometimes not equal to $num_points*2
+	//assert(count($points) == ($num_points*2));
+	if (count($points) != ($num_points*2)) {
+		return @imagefilledpolygon($image, $points, $num_points, $color);
+	}
+	return imagefilledpolygon($image, $points, $color);
 }
 
 function wimagecreatetruecolor($width, $height)
diff --git a/lib/WeatherMapNode.class.php b/lib/WeatherMapNode.class.php
index 55fa40d..81fb15e 100644
--- a/lib/WeatherMapNode.class.php
+++ b/lib/WeatherMapNode.class.php
@@ -615,7 +615,7 @@ class WeatherMapNode extends WeatherMapItem
 		// Draw the icon, if any
 		if(isset($icon_im))
 		{
-			imagecopy($node_im, $icon_im, $icon_x1, $icon_y1, 0, 0, imagesx($icon_im), imagesy($icon_im));
+			imagecopy($node_im, $icon_im, round($icon_x1), round($icon_y1), 0, 0, imagesx($icon_im), imagesy($icon_im));
 			imagedestroy($icon_im);
 		}
 
@@ -632,7 +632,7 @@ class WeatherMapNode extends WeatherMapItem
 			// if there's an icon, then you can choose to have no background
 			if(! $col->is_none() )
 			{
-			    imagefilledrectangle($node_im, $label_x1, $label_y1, $label_x2, $label_y2, $col->gdallocate($node_im));
+			    imagefilledrectangle($node_im, round($label_x1), round($label_y1), round($label_x2), round($label_y2), $col->gdallocate($node_im));
 			}
 
 			if ($this->selected)
@@ -646,7 +646,7 @@ class WeatherMapNode extends WeatherMapItem
 				$olcol = new Colour($this->labeloutlinecolour);
 				if ($olcol->is_real())
 				{
-					imagerectangle($node_im, $label_x1, $label_y1, $label_x2, $label_y2, $olcol->gdallocate($node_im));
+					imagerectangle($node_im, round($label_x1), round($label_y1), round($label_x2), round($label_y2), $olcol->gdallocate($node_im));
 				}
 			}
 			#}
@@ -716,7 +716,7 @@ class WeatherMapNode extends WeatherMapItem
 		if(isset($this->image))
 		{
 			imagealphablending($im, true);
-			imagecopy ( $im, $this->image, $this->x - $this->centre_x, $this->y - $this->centre_y, 0, 0, imagesx($this->image), imagesy($this->image) );
+			imagecopy ( $im, $this->image, round($this->x - $this->centre_x), round($this->y - $this->centre_y), 0, 0, imagesx($this->image), imagesy($this->image) );
 		}
 
 	}
diff --git a/lib/Weathermap.class.php b/lib/Weathermap.class.php
index f575fd2..4c17948 100644
--- a/lib/Weathermap.class.php
+++ b/lib/Weathermap.class.php
@@ -503,7 +503,7 @@ class WeatherMap extends WeatherMapBase
         }
 
         if (($fontnumber > 0) && ($fontnumber < 6)) {
-            imagestring($image, $fontnumber, $x, $y - imagefontheight($fontnumber), $string, $colour);
+            imagestring($image, $fontnumber, round($x), round($y - imagefontheight($fontnumber)), $string, $colour);
             if ($angle != 0) {
                 wm_warn("Angled text doesn't work with non-FreeType fonts [WMWARN02]\n");
             }
@@ -1609,7 +1609,7 @@ class WeatherMap extends WeatherMapBase
                 $boxy += $this->height;
             }
 
-            $scale_im = imagecreatetruecolor($boxwidth + 1, $boxheight + 1);
+            $scale_im = imagecreatetruecolor(round($boxwidth + 1), round($boxheight + 1));
             $scale_ref = 'gdref_legend_' . $scalename;
 
             // Start with a transparent box, in case the fill or outline colour is 'none'
@@ -1717,12 +1717,12 @@ class WeatherMap extends WeatherMapBase
 
         switch ($which) {
             case "MIN":
-                $stamp = strftime($this->minstamptext, $this->min_data_time);
+                $stamp = @strftime($this->minstamptext, $this->min_data_time);
                 $pos_x = $this->mintimex;
                 $pos_y = $this->mintimey;
                 break;
             case "MAX":
-                $stamp = strftime($this->maxstamptext, $this->max_data_time);
+                $stamp = @strftime($this->maxstamptext, $this->max_data_time);
                 $pos_x = $this->maxtimex;
                 $pos_y = $this->maxtimey;
                 break;
@@ -3284,7 +3284,7 @@ class WeatherMap extends WeatherMapBase
         } else {
             $maptime = time();
         }
-        $this->datestamp = strftime($this->stamptext, $maptime);
+        $this->datestamp = @strftime($this->stamptext, $maptime);
 
         // do the basic prep work
         if ($this->background != '') {

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions