Upload Edilen Resmi Yeniden Boyutlandırma
-
aşağıdaki kod sorunsuz olarak çalışıyo ama sorunum şu upload ettiğimiz resimler direkt yaklaşık olarak 1 mb felan amacım uploadedilen resimlerin belirli bi boyuttla 100x200 gibi boyutlandırıp ön izlemesini oluşturmak istiyorumç ama nasıl yapabileceğimi çözemedim
<%
enalt_sayi = 100000
enust_sayi = 999999
Randomize()
isle = enust_sayi - enalt_sayi + 1
random = isle * rnd()
random = random + enalt_sayi
guvenlik = int(random)
Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save server.MapPath("..\upload\")'Resmin kayıt oldugu klasor
Set Jpeg = Server.CreateObject("Persits.Jpeg")
For Each File in Upload.Files
dosya = file.path
Jpeg.Open dosya
set fso = CreateObject("Scripting.FileSystemObject")
set file = fso.GetFile(File.Path)
file.name = "rs"&guvenlik&".jpg"
set file = nothing
set fso = nothing
next
%> -
hocam hiç konuyu okumadan başlığa bakıp daldın galiba, adam asp yazmış sen php
-
bu aşağıdaki kod , şunları yapar :
resmi bir klasöre up eder, klasör izninin 777 olması gerek, yüklenen dosyanın istenilen boyutta küçük bir kopyasını alır ( 360 px genişlikte )
sonra bu aldığı 360 genişlikli resmin ortasından 80x60 ve 120x90 px boyutlarında iki tane thumb çıkarır. gerçek resmi user/gercek , kopya resmi user/video
thumbları user/thumb klasörlerinde tutar. bunları değiştirebilirsiniz ama açtığını tüm klasörlerin izinleri 777 olmalı. neden çalışmıyor derseniz , acaba php kurulumunda gd2.dll kütüphanesi aktif edilmiş mi , php.ini den bir bakın bakalım
<?
$file1=$_FILES['resim1']['name'];
if(!empty($file1)){
$date=date("YmdHis");
$ext=strtolower(substr($file1,-4));
$ext=($ext=="jpeg")?".jpg":$ext;
$uploaddir= 'user/';
/*
user/ klasöerünün içinde
gercek/
thumb/
video/ şeklinde 3 tane klasör var , dosyanın gerçeğini gercek/ , uygun boyutunu video/
içinden çıkarıp aldığı thumbları thumb/ klasörlerine atacak
*/
$uploadfile = $uploaddir."gercek/".basename($_FILES['resim1']['name']); // formdan gelen file değişkenin ismi resim1
if(move_uploaded_file($_FILES['resim1']['tmp_name'], $uploadfile)){
$ks=2;
$gercek=$_SESSION['xxx']."_r".$date.$ext;
chmod($uploaddir."gercek/".$file1, 0777);
rename($uploaddir."gercek/".$file1, $uploaddir."gercek/".$gercek);
list($width, $height, $type, $attr) = getimagesize($uploaddir."gercek/".$gercek);
if($width<240){ // genişliği 240 dan küçük olmaması gibi bir kıstas koydum
@unlink($uploaddir."gercek/".$gercek);
?>
<script>
alert("Resminiz çok küçük, lütfen daha büyük bir resim seçiniz.");
window.open("videoekle.php","_self");
</script>
<?
die();
}
$w1=($width>360)?360:$width;
$w2=200;
$h2=150;
if((($height*$ks)<$width)||(($width*$ks)<$height)){
unlink($uploaddir."gercek/".$gercek);
?>
<script>
alert("yükseklik/genişlik diğerinin <?=$ks?> katından fazla olamaz");
window.open("<?=$link?><?if(!empty($_REQUEST['id'])){?>?id=<?=$_REQUEST['id']?><?}?>","_self");
</script>
<?
die();
}
// ben istediğim boyutu w=360 , h= serbest olarak aldım istenilen boyut diye birşey olmayada bilir
if($width>360){
/// yth dosyası yarat ///
$dosya_ismi=$_SESSION['xxx']."_r".$date; ///session xxx üye kaydını tutar
$istenenBoyut=360;
if($ext==".jpg"){
$resim = imagecreatefromjpeg($uploaddir."gercek/".$gercek);
}elseif($ext==".gif"){
$resim = imagecreatefromgif($uploaddir."gercek/".$gercek);
}
$resim_width = imageSX($resim);
$resim_height = imageSY($resim);
/*
////////////////////// dikdörtgen özelliği /////////////// - dosyanın ölçütleri korunmak isteniyorsa aktif edilir
if($resim_width > $resim_height)
{
$yeni_width = $istenenBoyut;
$factor = $yeni_width/$resim_width;
$yeni_height = round($resim_height * $factor);
}
else
{
$yeni_height = $istenenBoyut;
$factor = $yeni_height/$resim_height;
$yeni_width = round($resim_width * $factor);
}
*/
$yeni_width = $istenenBoyut;
$factor = $yeni_width/$resim_width;
$yeni_height = round($resim_height * $factor);
$tmp = imageCreateTrueColor($yeni_width,$yeni_height);
imagecopyresampled($tmp, $resim, 0, 0, 0, 0, $yeni_width, $yeni_height, $resim_width, $resim_height);
imagedestroy($resim);
$resim = imagecreatetruecolor($yeni_width,$yeni_height);
imagecopy($resim, $tmp, 0,0,0,0, $yeni_width, $yeni_height);
if($ext==".jpg"){
imagejpeg($resim,$uploaddir."video/".$dosya_ismi.$ext, 70);
}elseif($ext==".gif"){
imagegif($resim,$uploaddir."video/".$dosya_ismi.$ext, 70);
}
// chmod($uploaddir.$dosya_ismi.$ext, 0777);
$video=$dosya_ismi.$ext;
list($width1, $height1, $type, $attr) = getimagesize($uploaddir."video/".$video);
// uygun boyutta video yarat
}else{ // resim ztn uygun boyutta
$video=$_SESSION['xxx']."_r".$date.$ext;
copy($uploaddir."gercek/".$gercek,$uploaddir."video/".$video);
$width1=$width;
$height1=$height;
}
///th200 yarat //////////////////
$filename = $uploaddir."video/".$video;
$iw=$w2;
$ih=$h2;
$thumb = imagecreatetruecolor($iw,$ih);
$beyaz=imagecolorallocate($thumb,255,255,255);
imagefill($thumb,0,0,$beyaz);
if($ext==".jpg"){
$source = imagecreatefromjpeg($filename);
}else{
$source = imagecreatefromgif($filename);
}
// Resize
$hx=0 ; // hedef x
$hy=0; // hedef y
$kx=round(($width1-$w2)/2);
$ky=round(($height1-$h2)/2);
$dw=$iw; // hedef width
$dh=$ih; // hedef height
$sw=$iw ; // kaynak w
$sh=$ih; // kaynak h
imagecopyresized($thumb, $source,$hx,$hy,$kx,$ky,$dw,$dh,$sw,$sh);
$thumb200=$_SESSION['xxx']."_th200".$date.$ext;
if($ext==".jpg"){
imagejpeg($thumb,$uploaddir."thumb/".$thumb200, 200);
}else{
imagegif($thumb,$uploaddir."thumb/".$thumb200, 100);
}
///th200yarat //////////////////
}else{ // if !moveuploaded
?>
<script>
alert("Resim yüklenemedi.");
window.open("<?=$link?><?if(!empty($_REQUEST['id'])){?>?id=<?=$_REQUEST['id']?><?}?>","_self");
</script>
<?
die();
} // if moveuploaded
//// artık 2 tane daha thumb yarat ////////////////////
$g3=explode(".",$thumb200);
$ext=".".$g3[1];
$uploaddir="user/";
for($i=80;$i<121;$i+=40){
$th="thumb".$i;
$dosya_ismi=$_SESSION['xxx']."_th".$i."_".$date;
$istenenBoyut=$i;
if($ext==".jpg"){
$resim = imagecreatefromjpeg($uploaddir."thumb/".$thumb200);
}elseif($ext==".gif"){
$resim = imagecreatefromgif($uploaddir."thumb/".$thumb200);
}elseif($ext==".png"){
$resim = imagecreatefrompng($uploaddir."thumb/".$thumb200);
}
$resim_width = imageSX($resim);
$resim_height = imageSY($resim);
if($resim_width > $resim_height)
{
$yeni_width = $istenenBoyut;
$factor = $yeni_width/$resim_width;
$yeni_height = round($resim_height * $factor);
}
else
{
$yeni_height = $istenenBoyut;
$factor = $yeni_height/$resim_height;
$yeni_width = round($resim_width * $factor);
}
$tmp = imageCreateTrueColor($yeni_width,$yeni_height);
imagecopyresampled($tmp, $resim, 0, 0, 0, 0, $yeni_width, $yeni_height, $resim_width, $resim_height);
imagedestroy($resim);
$resim = imagecreatetruecolor($yeni_width,$yeni_height);
imagecopy($resim, $tmp, 0,0,0,0, $yeni_width, $yeni_height);
if($ext==".jpg"){
imagejpeg($resim,$uploaddir."thumb/".$dosya_ismi.$ext, 70);
}elseif($ext==".gif"){
imagegif($resim,$uploaddir."thumb/".$dosya_ismi.$ext, 70);
}elseif($ext==".png"){
imagepng($resim,$uploaddir."thumb/".$dosya_ismi.$ext, 9);
}
$$th=$dosya_ismi.$ext;
}
////// uygun boyutta thumblar ////////////
} // ! empty file1
?>
