Witam
Mam skrypt który tworzy zdjęcie (wymiary, nazwę, jakość itd.) i chciałbym aby skrypt skopiował/stworzył to zdjęcie jeszcze do innego folderu ale w oryginalnym wymiarze i jakości.
Kod:
<?php
header('Content-type: text/html; charset=utf-8');
class demotkonv
{
var $szer_gl=600; // szerokoĹ?Ä? obrazka razem z czarnym tĹ?em
var $szer_img=600; // szerokoĹ?Ä? gĹ?Ăłwnego obrazka w ramce
var $top_img=0; // gĂłrny margines
var $font_file = 'Thunderpic/arial.ttf';
var $font_size_tyt = 18;
var $font_size_opis = 10;
var $odstep_miedzy_wierszami = 5;
var $odstep_pod_obrazkiem=0;
var $odstep_pod_tytulem=0;
var $odstep_pod_opisem=0;
var $katalog='_picbase/';
var $katalog_tmp='tmp/';
var $znak_wodny='Thunderpic/logo.png';
var $znak_wodny_p='pd'; // lg-lewa gĂłra; pg-prawa gĂłra; ld- lewa dĂłĹ?; pd - prawa dĂłĹ?
// tego nie modyfikujemy
var $wys_img=0;
var $wys_gl=0;
var $fname;
var $fotile;
function doname($dane)
{
$dozwolone='qwertyuiopasdfghjklzxcvbnm1234567890.';
for($i=0;$i<strlen($dane);$i++)
return $dop.$dane2;
}
function pobierz_upload($filename)
{
$this->fname=$this->doname($filename['name']);
$uploadFile = $this->katalog_tmp.$this->fname;
{
return $uploadFile;
}
else
return 'NIEPOBRANO';
}
function podziel($dane,$dl,$mm)
{
if($mm>6) return $dane; else $mm++;
{
$tt[1
]=$this->podziel(substr($dane, $dl,strlen($dane)),$dl,$mm); return $tt[0].' '.$tt[1];
}
else
return $dane;
}
function utworz_img($imgname,$tytul,$opis,$znakuj,$tofilename)
{
if( (eregi('\.jpg$',$imgname)) || (eregi('\.jpeg$',$imgname)) ) $img = @imagecreatefromjpeg($katalog_tmp.$imgname);
else if(eregi('\.gif$',$imgname)) {
$img = @imagecreatefromgif($katalog_tmp.$imgname);
}
else if(eregi('\.png$',$imgname)) {
$img = @imagecreatefrompng($katalog_tmp.$imgname);
}
else
{
return false;
}
$wys=imagesy($img);
$szer=imagesx($img);
$this->wys_img=$wys*($this->szer_img/$szer);
$b_left=round(($this->szer_gl-$this->szer_img)/2
);
$bbox = imagettfbbox ($this->font_size_tyt, 0, $this->font_file, $tytul);
$bbox2 = imagettfbbox ($this->font_size_opis, 0, $this->font_file, $opis);
$wys_bbox=$bbox[5];
$wys_bbox2=$bbox2[5];
$mase = $bbox[0] + $bbox[2];
$mase2 = $bbox2[0] + $bbox2[2];
$dop_wys=ceil(ceil($mase/$this->szer_img)*($bbox[5
]*-1
))+ceil((ceil($mase/$this->szer_img)-1
)*$this->odstep_miedzy_wierszami)+$this->odstep_pod_obrazkiem-$this->odstep_miedzy_wierszami; $dop_wys2=ceil(ceil($mase2/$this->szer_img)*($bbox2[5
]*-1
))+ceil((ceil($mase2/$this->szer_img)-1
)*$this->odstep_miedzy_wierszami)+$this->odstep_pod_tytulem-$this->odstep_miedzy_wierszami;
$this->wys_gl=$this->wys_img+$this->top_img+20+$dop_wys+$dop_wys2+$this->odstep_pod_opisem;
$im = ImageCreateTrueColor( $this->szer_gl, $this->wys_gl );
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 255, 255, 255);
$im2 = ImageCreateTrueColor( $this->szer_img+2, $this->wys_img+2 );
imagecopy( $im, $im2, $b_left-1, $this->top_img-1, 0, 0, $this->szer_img+2, $this->wys_img+2);
imagecopyresampled( $im, $img, $b_left, $this->top_img, 0, 0, $this->szer_img, $this->wys_img, $szer, $wys);
if($znakuj && !empty($this->znak_wodny)) {
if( (eregi('.jpg',$this->znak_wodny)) || (eregi('.jpeg',$this->znak_wodny)) ) $imw = @imagecreatefromjpeg($this->znak_wodny);
else if(eregi('.gif',$this->znak_wodny)) $imw = @imagecreatefromgif($this->znak_wodny);
else if(eregi('.png',$this->znak_wodny)) $imw = @imagecreatefrompng($this->znak_wodny);
$wys_w=imagesy($imw);
$szer_w=imagesx($imw);
if($this->znak_wodny_p=='lg')
{
$b_left2=$b_left+10;
$b_top2=$this->top_img+10;
}
else if($this->znak_wodny_p=='pg')
{
$b_left2=$b_left+($this->szer_img-$szer_w-10);
$b_top2=$this->top_img+10;
}
else if($this->znak_wodny_p=='ld')
{
$b_left2=$b_left+10;
$b_top2=$this->top_img+($this->wys_img-$wys_w-10);
}
else if($this->znak_wodny_p=='pd')
{
$b_left2=$b_left+($this->szer_img-$szer_w-2);
$b_top2=$this->top_img+($this->wys_img-$wys_w-2);
}
imagecopy( $im, $imw, $b_left2, $b_top2, 0, 0, $szer_w, $wys_w);
}
$tyt_top=$this->wys_img+$this->top_img+$this->odstep_pod_obrazkiem-$bbox[5];
if($mase > $this->szer_img)
{
$ile=$mase/$this->szer_img;
for($i=0;$i<count($tb);$i++)
$tq[]=$this->podziel($tb[$i],$ile_str,0);
for($i=0;$i<count($tb);$i++)
{
$j=$i+1;
$tyt=$tyt.''.$tb[$i].' ';
if($licz>$ile_str)
{
$tc[]=$tyt;
$tyt='';
}
}
$tc[]=$tyt;
$tyt='';
for($i=0;$i<=$ile;$i++)
{
$tytul2=$tc[$i];
$bbox = imagettfbbox ($this->font_size_tyt, 0, $this->font_file, $tytul2);
$mase = $bbox[0] + $bbox[2];
$dl_tyt = $b_left+round(($this->szer_img - $mase)/2
); imagefttext($im, $this->font_size_tyt, 0, $dl_tyt, $tyt_top, $text_color, $this->font_file, $tytul2);
$tyt_top+=$this->odstep_miedzy_wierszami+($bbox[5]*-1);
}
}
else
{
$dl_tyt = $b_left+round(($this->szer_img - $mase)/2
); imagefttext($im, $this->font_size_tyt, 0, $dl_tyt+1, $tyt_top, $text_color, $this->font_file, $tytul);
$tyt_top+=$this->odstep_miedzy_wierszami+($bbox[5]*-1);
}
$tyt_top+=$this->odstep_pod_tytulem+$wys_bbox;
$licz=0;
if($mase2 > $this->szer_img)
{
$ile=$mase2/$this->szer_img;
for($i=0;$i<count($tb);$i++)
$tq[]=$this->podziel($tb[$i],$ile_str,0);
$tyt='';
for($i=0;$i<count($tb);$i++)
{
$j=$i+1;
$tyt=$tyt.''.$tb[$i].' ';
if($licz>$ile_str)
{
$tc[]=$tyt;
$tyt='';
}
}
$tc[]=$tyt;
$tyt='';
for($i=0;$i<=$ile;$i++)
{
$opis2 = $tc[$i];
$bbox2 = imagettfbbox($this->font_size_opis, 0, $this->font_file, $opis2);
$mase2 = $bbox2[0] + $bbox2[2];
$dl_tyt = $b_left+round(($this->szer_img - $mase2)/2
); imagefttext($im, $this->font_size_opis, 0, $dl_tyt, $tyt_top, $text_color, $this->font_file, $opis2);
$tyt_top+=$this->odstep_miedzy_wierszami+($bbox2[5]*-1);
}
}
else
{
$dl_tyt = $b_left+round(($this->szer_img - $mase2)/2
); imagefttext($im, $this->font_size_opis, 0, $dl_tyt,$tyt_top, $text_color, $this->font_file, $opis);
$tyt_top+=$this->odstep_miedzy_wierszami+($bbox2[5]*-1);
}
imagejpeg($im, "_picbase/" . $tofilename,75);
$im_orginal = ImageCreateTrueColor($szer,$wys);
imagejpeg($im_orginal, "_orginal/" . $tofilename,100);
@unlink($this->katalog_tmp.$this->fname);
return $this->katalog.$this->fname;
}
}
?>
Kilka lini wyżej dodałem taki kod:
$im_orginal = ImageCreateTrueColor($szer,$wys);
imagejpeg($im_orginal, "_orginal/" . $tofilename,100);
Zdjęcie tworzy się całe czarne. Z tego co się domyślam to nie jest pobierane zdjęcie i dlatego tak się dzieje, mimo to nie mogę tego ogarnąć. Proszę o pomoc.
Ten post edytował marcin0077 1.08.2011, 09:47:12