> 3; $scan_line_align = ($scan_line_size & 0x03) ? 4 - ($scan_line_size & 0x03) : 0; for($i = 0, $l = $height - 1; $i < $height; $i++, $l--) { // BMP stores scan lines starting from bottom fseek($src_f, $offset + (($scan_line_size + $scan_line_align) * $l)); $scan_line = fread($src_f, $scan_line_size); if($bits == 24) { $gd_scan_line = ""; $j = 0; while($j < $scan_line_size) { $b = $scan_line{$j++}; $g = $scan_line{$j++}; $r = $scan_line{$j++}; $gd_scan_line .= "\x00$r$g$b"; } } else if($bits == 8) { $gd_scan_line = $scan_line; } else if($bits == 4) { $gd_scan_line = ""; $j = 0; while($j < $scan_line_size) { $byte = ord($scan_line{$j++}); $p1 = chr($byte >> 4); $p2 = chr($byte & 0x0F); $gd_scan_line .= "$p1$p2"; } $gd_scan_line = substr($gd_scan_line, 0, $width); } else if($bits == 1) { $gd_scan_line = ""; $j = 0; while($j < $scan_line_size) { $byte = ord($scan_line{$j++}); $p1 = chr((int) (($byte & 0x80) != 0)); $p2 = chr((int) (($byte & 0x40) != 0)); $p3 = chr((int) (($byte & 0x20) != 0)); $p4 = chr((int) (($byte & 0x10) != 0)); $p5 = chr((int) (($byte & 0x08) != 0)); $p6 = chr((int) (($byte & 0x04) != 0)); $p7 = chr((int) (($byte & 0x02) != 0)); $p8 = chr((int) (($byte & 0x01) != 0)); $gd_scan_line .= "$p1$p2$p3$p4$p5$p6$p7$p8"; } $gd_scan_line = substr($gd_scan_line, 0, $width); } fwrite($dest_f, $gd_scan_line); } fclose($src_f); fclose($dest_f); return true; } function imagecreatefrombmp($filename) { $tmp_name = tempnam("/tmp", "GD"); if(ConvertBMP2GD($filename, $tmp_name)) { $img = imagecreatefromgd($tmp_name); unlink($tmp_name); return $img; } return false; } /////////////////////////////////////////////////////////////////// $obrazek = $_GET["url"]; $max_szerokosc = $_GET["s"]; $max_wysokosc = $_GET["w"]; if (!$max_szerokosc) $max_szerokosc = 1000; if (!$max_wysokosc) $max_wysokosc = 1000; $obrazek .= "."; if (file_exists($obrazek."gif")) { $obrazek = $obrazek."gif"; $format = "gif"; } elseif (file_exists($obrazek."png")) { $obrazek = $obrazek."png"; $format = "png"; } elseif (file_exists($obrazek."jpg")) { $obrazek = $obrazek."jpg"; $format = "jpg"; } elseif (file_exists($obrazek."bmp")) { $img = imagecreatefrombmp($obrazek."bmp"); imagejpeg($img, $obrazek."jpg"); $obrazek = $obrazek."jpg"; $format = "jpg"; } $rozmiar = GetImageSize($obrazek); $szerokosc = $rozmiar[0]; $wysokosc = $rozmiar[1]; $wspolczynnik_x = $max_szerokosc / $szerokosc; $wspolczynnik_y = $max_wysokosc / $wysokosc; if ($wysokosc > ($szerokosc * $max_wysokosc/$max_szerokosc)) { $nowa_szerokosc = $szerokosc; $nowa_wysokosc = floor($szerokosc * $max_wysokosc/$max_szerokosc); } else { $nowa_wysokosc = $wysokosc; $nowa_szerokosc = floor($wysokosc * $max_szerokosc/$max_wysokosc); } if ($format == "jpg") { $zrd = ImageCreateFromJpeg($obrazek); } elseif ($format == "gif") { $zrd = ImageCreateFromGif($obrazek); } elseif ($format == "png") { $zrd = ImageCreateFromPng($obrazek); } $prz = ImageCreateTrueColor($max_szerokosc, $max_wysokosc); ImageCopyResized($prz, $zrd, 0, 0, 0, 0, $max_szerokosc, $max_wysokosc, $nowa_szerokosc, $nowa_wysokosc); header("Content-type: Image/$format"); ImageJpeg($prz, null, 100); ImageDestroy($zrd); ImageDestroy($prz); ?>