Ludzie, czy wy nie macie tabulatorów tylko piszecie wszystko jednym ciurkiem.. to tak jak pisać wypracowanie bez kropek i przecinków. Potem się dziwisz, że błędów nie potrafisz znaleźć.
1) powinno być __destruct nie destruct()
<?php
class Obrazek
{
private $obrazek;
function __construct ( $sciezka_pliku_jpg )
{
$this->obrazek = @imagecreatefromjpeg
( $sciezka_pliku_jpg ) or
die( "Nie mo�na zainicjowa� strumienia GD" ); }
function __destruct()
{
imagedestroy ( $this->obrazek );
}
public function resize ( $tbx , $tby )
{
$ow = imagesx($this->obrazek);
$oh = imagesy($this->obrazek);
$mid['ow'] = $tbx;
$mid['oh'] = $tby;
if ( $ow > $oh and $mid['oh'] > $oh)
{
$mid['width'] = $mid['ow'];
$mid['height'] = $oh/$ow * $mid['ow'];
$mid_pot['width'] = 0;
$mid_pot['height'] = ($mid['oh'] - $mid['height']) / 2;
}
else
{
$mid['height'] = $mid['oh'];
$mid['width'] = $ow/$oh * $mid['oh'];
$mid_pot['height'] = 0;
$mid_pot['width'] = ($mid['ow'] - $mid['width']) / 2;
}
$tb = imagecreatetruecolor ( $mid['ow'], $mid['oh'] );
imagecopyresized ( $tb , $this->obrazek , $mid_pot['width'],
$mid_pot['height'], 0, 0,
$mid['width'], $mid['height'], $ow, $oh );
return $tb;
}
}
header("Content-type: image/jpeg");
$obiektObrazka = new Obrazek ( "img.jpg" );
imagejpeg ( $obiektObrazka->resize (160, 90) );
?>
Kod jest dobry. Tylko Ty masz stare PHP w wersji 4, do tego skryptu wymagane jest PHP w wersji >5.
Wersja PHP4:
<?php
class Obrazek
{
var $obrazek;
function Obrazek ( $sciezka_pliku_jpg )
{
$this->obrazek = @imagecreatefromjpeg
( $sciezka_pliku_jpg ) or
die( "Nie mo�na zainicjowa� strumienia GD" ); }
function __destruct()
{
imagedestroy ( $this->obrazek );
}
public function resize ( $tbx , $tby )
{
$ow = imagesx($this->obrazek);
$oh = imagesy($this->obrazek);
$mid['ow'] = $tbx;
$mid['oh'] = $tby;
if ( $ow > $oh and $mid['oh'] > $oh)
{
$mid['width'] = $mid['ow'];
$mid['height'] = $oh/$ow * $mid['ow'];
$mid_pot['width'] = 0;
$mid_pot['height'] = ($mid['oh'] - $mid['height']) / 2;
}
else
{
$mid['height'] = $mid['oh'];
$mid['width'] = $ow/$oh * $mid['oh'];
$mid_pot['height'] = 0;
$mid_pot['width'] = ($mid['ow'] - $mid['width']) / 2;
}
$tb = imagecreatetruecolor ( $mid['ow'], $mid['oh'] );
imagecopyresized ( $tb , $this->obrazek , $mid_pot['width'],
$mid_pot['height'], 0, 0,
$mid['width'], $mid['height'], $ow, $oh );
return $tb;
}
}
header("Content-type: image/jpeg");
$obiektObrazka = new Obrazek ( "img.jpg" );
imagejpeg ( $obiektObrazka->resize (160, 90) );
$obiektObrazka->__destruct();
?>