public static function resize($path, $width, $height) { $new_image = imagecreatetruecolor($width, $height); $src = imagecreatefromjpeg($path); imagecopyresized($new_image, $src, 0, 0, 0, 0, $width, $height, imagesx($path), imagesy($path)); imagejpg($new_image); }
public function copy($filename, $targetDir, $maxY = false, $maxX = false) { if (!$maxY && !$maxX) { return false; } $file = open_image($this->image); if ($file) { $oldX = imagesx($file); $oldY = imagesy($file); $x = 0; $y = 0; $assumedY = $maxX * ($oldY / $oldX); $assumedX = $maxY * ($oldX / $oldY); if ($assumedX > $maxX) { $x = $maxX; $y = $assumedY; } if ($assumedY > $maxY) { $x = $assumedX; $y = $maxY; } $img = imagecreatetruecolor($x, $y); imagecopyresampled($img, $file, 0, 0, 0, 0, $x, $y, $oldX, $oldY); $destination = $targetDir . '/' . $filename; imagejpg($img, $destination, 60); } return true; }
function onlineresize($subor, $NovaSirka, $NovaVyska) { $urli = getimagesize($subor); if ($urli["mime"] == "image/jpg") { $image = imagecreatefromjpg($subor); } elseif ($urli["mime"] == "image/png") { $image = imagecreatefrompng($subor); } elseif ($urli["mime"] == "image/gif") { $image = imagecreatefromgif($subor); } elseif ($urli["mime"] == "image/jpeg") { $image = imagecreatefromjpeg($subor); } $sirka = imagesx($image); $vyska = imagesy($image); if ($NovaVyska == 0) { $pomer = $sirka / $vyska; $NovaVyska = $NovaSirka / $pomer; } else { $NovaSirka = $NovaSirka; $NovaVyska = $NovaVyska; } $image_zmenseny = imagecreatetruecolor($NovaSirka, $NovaVyska); imagecopyresampled($image_zmenseny, $image, 0, 0, 0, 0, $NovaSirka, $NovaVyska, $sirka, $vyska); // Zobraz�me zmen�eninu if ($urli["mime"] == "image/jpg") { header('Content-type: image/jpg'); imagejpg($image_zmenseny); } elseif ($urli["mime"] == "image/png") { header('Content-type: image/png'); imagepng($image_zmenseny); } elseif ($urli["mime"] == "image/gif") { header('Content-type: image/gif'); imagegif($image_zmenseny); } elseif ($urli["mime"] == "image/jpeg") { header('Content-type: image/jpeg'); imagejpeg($image_zmenseny); } }
$im = imagecreatefrompng($file); header('Content-type: image/png'); imagepng($im); imagedestroy($im); break; case "gif": $im = imagecreatefromgif($file); header('Content-type: image/gif'); //imagegif($im); echo file_get_contents($image); imagedestroy($im); break; case "jpg": $im = imagecreatefromjpg($file); header('Content-type: image/jpg'); imagejpg($im); imagedestroy($im); break; case "wmv": header('Content-type: video/x-ms-wmv'); readfile($file); break; case "ogv": header('Content-type: video/ogg'); readfile($file); break; case "ogg": header('Content-type: video/ogg'); readfile($file); break; case "mp4":
} elseif ($urli["mime"] == "image/gif") { $myImage = imagecreatefromgif($imgSrc); } elseif ($urli["mime"] == "image/jpeg") { $myImage = imagecreatefromjpeg($imgSrc); } if ($width > $height) { $y = 0; $x = ($width - $height) / 1000000000; $smallestSide = $height; } else { $x = 0; $y = ($height - $width) / 1000000000; $smallestSide = $width; } $thumbSize = 700; $thumbSize2 = 300; $thumb = imagecreatetruecolor($thumbSize, $thumbSize2); imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide); if ($urli["mime"] == "image/jpg") { header('Content-type: image/jpg'); imagejpg($thumb); } elseif ($urli["mime"] == "image/png") { header('Content-type: image/png'); imagepng($thumb); } elseif ($urli["mime"] == "image/gif") { header('Content-type: image/gif'); imagegif($thumb); } elseif ($urli["mime"] == "image/jpeg") { header('Content-type: image/jpeg'); imagejpeg($thumb); }
} } } if ($errorText) { Error($errorText); } else { if (($scale == 0 || $scale == 100) && $width == 0 && $height == 0) { readfile(ZM_DIR_EVENTS . '/' . $path); } else { $i = imagecreatefromjpeg(ZM_DIR_EVENTS . '/' . $path); $oldWidth = imagesx($i); $oldHeight = imagesy($i); if ($width == 0 && $height == 0) { $width = $oldWidth * $scale / 100.0; $height = $oldHeight * $scale / 100.0; } elseif ($width == 0 && $height != 0) { $width = $height * $oldWidth / $oldHeight; } elseif ($width != 0 && $height == 0) { $height = $width * $oldHeight / $oldWidth; } if ($width == $oldWidth && $height == $oldHeight) { imagejpg($i); imagedestroy($i); } else { $iScale = imagescale($i, $width, $height); imagejpeg($iScale); imagedestroy($i); imagedestroy($iScale); } } }
function map_img($map_data, $filename = "", $player_data = "", $account = "", $filetype = "png") { if ($account == "") { return False; } $cols = $map_data["cols"]; $rows = $map_data["rows"]; # make some kind of image library structure (maybe a class might be useful here) $buffer_terrain_ocean = imagecreatefrompng(PATH_IMAGES . IMAGE_TERRAIN_OCEAN); if ($buffer_terrain_ocean === False) { return False; } $buffer_terrain_land = imagecreatefrompng(PATH_IMAGES . IMAGE_TERRAIN_LAND); if ($buffer_terrain_land === False) { return False; } $unit_types = array("settler", "warrior"); for ($i = 0; $i < count($unit_types); $i++) { $unit_buffers[$unit_types[$i]] = imagecreatefrompng(PATH_IMAGES . $unit_types[$i] . ".png"); if ($unit_buffers[$unit_types[$i]] === False) { return False; } } $city_sizes = array("1"); for ($i = 0; $i < count($city_sizes); $i++) { $city_buffers[$city_sizes[$i]] = imagecreatefrompng(PATH_IMAGES . "city" . $city_sizes[$i] . ".png"); if ($city_buffers[$city_sizes[$i]] === False) { return False; } } $buffer_shield = imagecreatefrompng(PATH_IMAGES . IMAGE_SHIELD); if ($buffer_shield === False) { return False; } $buffer_city_flag = imagecreatefrompng(PATH_IMAGES . IMAGE_CITY_FLAG); if ($buffer_city_flag === False) { return False; } $tile_w = imagesx($buffer_terrain_ocean); $tile_h = imagesy($buffer_terrain_ocean); $unit_w = imagesx($unit_buffers[$unit_types[0]]); $unit_h = imagesy($unit_buffers[$unit_types[0]]); $city_w = imagesx($city_buffers[$city_sizes[0]]); $city_h = imagesy($city_buffers[$city_sizes[0]]); $w = $cols * $tile_w; $h = $rows * $tile_h; $buffer = imagecreatetruecolor($w, $h); for ($y = 0; $y < $rows; $y++) { for ($x = 0; $x < $cols; $x++) { $i = map_coord($cols, $x, $y); if ($player_data != "" and $account != "") { if ($player_data[$account]["fog"][$i] == "0") { #continue; } } if ($map_data["coords"][$i] == TERRAIN_LAND) { if (imagecopy($buffer, $buffer_terrain_land, $x * $tile_w, $y * $tile_h, 0, 0, $tile_w, $tile_h) == False) { return False; } } if ($map_data["coords"][$i] == TERRAIN_OCEAN) { if (imagecopy($buffer, $buffer_terrain_ocean, $x * $tile_w, $y * $tile_h, 0, 0, $tile_w, $tile_h) == False) { return False; } } } } imagedestroy($buffer_terrain_ocean); imagedestroy($buffer_terrain_land); if ($player_data != "" and $account != "") { if (isset($player_data[$account]["flags"]["grid"]) == True) { $color_grid = imagecolorallocate($buffer, 0, 0, 0); for ($x = 0; $x < $cols; $x++) { imageline($buffer, $x * $tile_w, 0, $x * $tile_w, $h, $color_grid); } for ($y = 0; $y < $rows; $y++) { imageline($buffer, 0, $y * $tile_h, $w, $y * $tile_h, $color_grid); } } if (isset($player_data[$account]["flags"]["coords"]) == True) { $color_text = imagecolorallocate($buffer, 0, 0, 0); $color_text_shadow = imagecolorallocate($buffer, 255, 255, 255); for ($y = 0; $y < $rows; $y++) { for ($x = 0; $x < $cols; $x++) { $i = map_coord($cols, $x, $y); if ($player_data[$account]["fog"][$i] == "0") { continue; } imagestring($buffer, 1, $x * $tile_w + 1, $y * $tile_h, "{$x},{$y}", $color_text_shadow); imagestring($buffer, 1, $x * $tile_w + 2, $y * $tile_h + 1, "{$x},{$y}", $color_text); } } } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (isset($player_data[$account]["path"]) == True) { $path = $player_data[$account]["path"]; $color_path = imagecolorallocate($buffer, 255, 0, 0); for ($i = 1; $i < count($path); $i++) { $p1x = round($path[$i - 1]["x"] * $tile_w + $tile_w / 2); $p1y = round($path[$i - 1]["y"] * $tile_h + $tile_h / 2); $p2x = round($path[$i]["x"] * $tile_w + $tile_w / 2); $p2y = round($path[$i]["y"] * $tile_h + $tile_h / 2); imageline($buffer, $p1x, $p1y, $p2x, $p2y, $color_path); $color_text = imagecolorallocate($buffer, 0, 0, 0); $color_text_shadow = imagecolorallocate($buffer, 255, 255, 255); #imagestring($buffer,1,$path[$i-1]["x"]*$tile_w+1,$path[$i-1]["y"]*$tile_h,$path[$i-1]["dir"],$color_text_shadow); #imagestring($buffer,1,$path[$i-1]["x"]*$tile_w+2,$path[$i-1]["y"]*$tile_h+1,$path[$i-1]["dir"],$color_text); } } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $color_transparent = imagecolorallocate($unit_buffers[$unit_types[0]], 255, 0, 255); for ($i = 0; $i < count($unit_types); $i++) { imagecolortransparent($unit_buffers[$unit_types[$i]], $color_transparent); } for ($i = 0; $i < count($city_sizes); $i++) { imagecolortransparent($city_buffers[$city_sizes[$i]], $color_transparent); } imagecolortransparent($buffer_shield, $color_transparent); imagecolortransparent($buffer_city_flag, $color_transparent); imagealphablending($buffer, True); imagesavealpha($buffer, True); $color_str_account = $player_data[$account]["color"]; $show_city_names = False; if (isset($player_data[$account]["flags"]["city_names"]) == True) { $show_city_names = True; } for ($i = 0; $i < count($player_data[$account]["cities"]); $i++) { $city = $player_data[$account]["cities"][$i]; map_paint_city($buffer, $city_buffers, $buffer_city_flag, $tile_w, $tile_h, $city_w, $city_h, $city, $color_str_account, $show_city_names); } foreach ($player_data as $player => $data) { if ($player == $account) { continue; } $color_str = $player_data[$player]["color"]; $n = count($player_data[$player]["cities"]); for ($i = 0; $i < $n; $i++) { $city = $player_data[$player]["cities"][$i]; $x = $city["x"]; $y = $city["y"]; if (is_fogged($account, $x, $y) == False) { map_paint_city($buffer, $city_buffers, $buffer_city_flag, $tile_w, $tile_h, $city_w, $city_h, $city, $color_str, $show_city_names); } } $n = count($player_data[$player]["units"]); for ($i = 0; $i < $n; $i++) { $unit = $player_data[$player]["units"][$i]; $x = $unit["x"]; $y = $unit["y"]; if (is_fogged($account, $x, $y) == False) { map_paint_unit($buffer, $unit_buffers, $buffer_shield, $tile_w, $tile_h, $unit_w, $unit_h, $unit, $color_str); } } } for ($i = 0; $i < count($player_data[$account]["units"]); $i++) { $unit = $player_data[$account]["units"][$i]; map_paint_unit($buffer, $unit_buffers, $buffer_shield, $tile_w, $tile_h, $unit_w, $unit_h, $unit, $color_str_account); } } imagedestroy($buffer_shield); imagedestroy($buffer_city_flag); for ($i = 0; $i < count($unit_types); $i++) { imagedestroy($unit_buffers[$unit_types[$i]]); } for ($i = 0; $i < count($city_sizes); $i++) { imagedestroy($city_buffers[$city_sizes[$i]]); } # to make final map image smaller filesize, use createimage to create palleted image, then copy truecolor image to palleted image $scale = 1.0; $final_w = round($w * $scale); $final_h = round($h * $scale); $buffer_resized = imagecreatetruecolor($final_w, $final_h); if (imagecopyresampled($buffer_resized, $buffer, 0, 0, 0, 0, $final_w, $final_h, $w, $h) == False) { irciv_term_echo("imagecopyresampled error"); return False; } imagedestroy($buffer); $buffer = imagecreate($final_w, $final_h); if (imagecopy($buffer, $buffer_resized, 0, 0, 0, 0, $final_w, $final_h) == False) { irciv_term_echo("imagecopy error"); return False; } imagedestroy($buffer_resized); unset($buffer_resized); /*if (isset($player_data[$account]["flags"]["crop_map"])==True) { $fog_boundary_l=$cols; $fog_boundary_t=$rows; $fog_boundary_r=0; $fog_boundary_b=0; for ($y=0;$y<$rows;$y++) { for ($x=0;$x<$cols;$x++) { $coord=map_coord($cols,$x,$y); if ($player_data[$account]["fog"][$coord]=="1") { if ($x<$fog_boundary_l) { $fog_boundary_l=$x; } if ($x>$fog_boundary_r) { $fog_boundary_r=$x; } if ($y<$fog_boundary_t) { $fog_boundary_t=$y; } if ($y>$fog_boundary_b) { $fog_boundary_b=$y; } } } } $fog_boundary_l=max(0,$fog_boundary_l-1); $fog_boundary_t=max(0,$fog_boundary_t-1); $fog_boundary_r=min($cols,$fog_boundary_r+2); $fog_boundary_b=min($rows,$fog_boundary_b+2); irciv_term_echo("IRCiv >> map_img: fog_boundary_l = $fog_boundary_l"); irciv_term_echo("IRCiv >> map_img: fog_boundary_t = $fog_boundary_t"); irciv_term_echo("IRCiv >> map_img: fog_boundary_r = $fog_boundary_r"); irciv_term_echo("IRCiv >> map_img: fog_boundary_b = $fog_boundary_b"); if (($fog_boundary_l<$fog_boundary_r) and ($fog_boundary_t<$fog_boundary_b)) { $range_x=$fog_boundary_r-$fog_boundary_l; $range_y=$fog_boundary_b-$fog_boundary_t; irciv_term_echo("IRCiv >> map_img: range_x = $range_x"); irciv_term_echo("IRCiv >> map_img: range_y = $range_y"); $w=$range_x*$tile_w; $h=$range_y*$tile_h; $buffer_resized=imagecreatetruecolor($w,$h); if (imagecopy($buffer_resized,$buffer,0,0,$fog_boundary_l*$tile_w,$fog_boundary_t*$tile_h,$w,$h)==False) { irciv_term_echo("imagecopy error"); return False; } imagedestroy($buffer); $buffer=imagecreate($w,$h); if (imagecopy($buffer,$buffer_resized,0,0,0,0,$w,$h)==False) { irciv_term_echo("imagecopy error"); return False; } imagedestroy($buffer_resized); unset($buffer_resized); } }*/ if ($filename != "") { switch ($filetype) { case "gif": imagegif($buffer, $filename . ".gif"); break; case "png": imagepng($buffer, $filename . ".png"); break; case "jpg": imagejpg($buffer, $filename . ".jpg"); break; } imagedestroy($buffer); } else { ob_start(); switch ($filetype) { case "gif": imagegif($buffer); break; case "png": imagepng($buffer); break; case "jpg": imagejpg($buffer); break; } $data = ob_get_contents(); ob_end_clean(); imagedestroy($buffer); return $data; } }