-
Üyelik
09.08.2014
-
Yaş/Cinsiyet
37 / E
-
Meslek
Siber Güvenlik Danışmanı
-
Konum
İstanbul Anadolu
-
Ad Soyad
K** A**
-
Mesajlar
294
-
Beğeniler
19 / 26
-
Ticaret
3, (%100)
Arkadaşlar kafayı sıyırıcam, bazı png formatlı resimleri yükleyebilirken bazıları beyaz çıkıyor problem nedir bir türlü çözemedim. Transparent sorunu olduğunu düşündüm başta onun içinde gerekli fonksiyonları ekledim ama resimler transparent olmadığı halde beyaz çıkıyor. Dosya sorunsuz upload oluyor, sorunu çıkaran png uzantısı için çalışan bölüm. Eksik veya gereksiz bir şey etkiliyor. Acaba hatam nerede açıklar mısınız lütfen.
if($FotografKayitDurum){
$targ_w = $targ_h = 350;
$post_x = intval(htmlspecialchars($_POST['x']));
$post_y = intval(htmlspecialchars($_POST['y']));
$jpeg_quality = 100;
$src = "../Images/" . $YeniFotografAdi;
if($uzanti == "jpeg" || $uzanti == "jpg"){
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagecopyresampled($dst_r,$img_r,0,0,$post_x,$post_y,
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
header('Content-type: image/jpeg');
imagejpeg($dst_r,"../Images/" . $YeniFotografAdi,$jpeg_quality);
}elseif($uzanti == "gif"){
$img_r = imagecreatefromgif($img_r);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagealphablending($dst_r, false);
$colorTransparent = imagecolorallocatealpha($dst_r, 0, 0, 0, 0x7fff0000);
imagefill($dst_r, 0, 0, $colorTransparent);
imagesavealpha($dst_r, true);
imagecopyresampled($dst_r,$img_r,0,0,$post_x,$post_y,
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
header('Content-type: image/gif');
imagegif($dst_r,"../Images/" . $YeniFotografAdi,$jpeg_quality);
}elseif($uzanti == "png"){
$img_r = imagecreatefrompng($img_r);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagealphablending($dst_r, false);
$colorTransparent = imagecolorallocatealpha($dst_r, 0, 0, 0, 0x7fff0000);
imagefill($dst_r, 0, 0, $colorTransparent);
imagesavealpha($dst_r, true);
imagecopyresampled($dst_r,$img_r,0,0,$post_x,$post_y,
$targ_w,$targ_h,$_POST['w'],$_POST['h']);
header('Content-type: image/png');
imagepng($dst_r,"../Images/" . $YeniFotografAdi,$jpeg_quality);
}
imagedestroy($dst_r);
}
Sorunu bazı dosyalar çıkartıyor. Normal upload yapınca sorunsuz yükleniyor ama kırpma işlemi için yukarıdaki yapıyı kullanırken bazı png uzantılı dosyalar beyaz oluyor.
-
Üyelik
09.08.2014
-
Yaş/Cinsiyet
37 / E
-
Meslek
Siber Güvenlik Danışmanı
-
Konum
İstanbul Anadolu
-
Ad Soyad
K** A**
-
Mesajlar
294
-
Beğeniler
19 / 26
-
Ticaret
3, (%100)
Sorunu çıkaran nokta.
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagealphablending($dst_r, false);
$colorTransparent = imagecolorallocatealpha($dst_r, 0, 0, 0, 0x7fff0000);
imagefill($dst_r, 0, 0, $colorTransparent);
imagesavealpha($dst_r, true);
Yukarıdaki kodlar nedense hiç çalışmıyor gibi.
-
Üyelik
09.08.2014
-
Yaş/Cinsiyet
37 / E
-
Meslek
Siber Güvenlik Danışmanı
-
Konum
İstanbul Anadolu
-
Ad Soyad
K** A**
-
Mesajlar
294
-
Beğeniler
19 / 26
-
Ticaret
3, (%100)
teşekkürler cevap için sorunum
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
altına
$dst_r = imagecolorallocate($dst_r, 255, 255, 255);
kodunu ekleyerek hallettim.
Sorunum çözüldü.
Tek bir sorunum kaldı o da
$_FILES['dosya']['error'] sorunum var.
1 tane resim dosyası var test.jpg bunu upload etmeye çalıştığımda hata kodu 1 dönüyor. Resim dosyasını photoshopta kopyalayıp jpg olarak tekrar kayıt ettiğimde sorunsuz yükleniyor. Başka hiç bir dosyada sorun yok, dosya baştan $_FILES['dosya']['error'] vermesini çözemedim bir türlü. Hatayı görüntülemeye çalıştığımda hiç bir hata görünmüyor.
dump3cz
Üyeliği Durdurulmuş
Banlı Kullanıcı
-
Üyelik
01.05.2017
-
Yaş/Cinsiyet
25 / E
-
Meslek
Yazılım
-
Konum
Bilecik
-
Ad Soyad
O** Ç**
-
Mesajlar
1750
-
Beğeniler
169 / 326
-
Ticaret
3, (%67)
Try catch bloğuna koymayı dener misin
-
Üyelik
09.08.2014
-
Yaş/Cinsiyet
37 / E
-
Meslek
Siber Güvenlik Danışmanı
-
Konum
İstanbul Anadolu
-
Ad Soyad
K** A**
-
Mesajlar
294
-
Beğeniler
19 / 26
-
Ticaret
3, (%100)
Yok arkadaşlar olmamış ya :( normal upload ediyormuş kırpma işlemini yapmıyormuş bende oldu sandım.
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
$dst_r= imagecolorallocate($dst_r, 255, 255, 255);
şeklinde kayıt ettiğimde kırpma işlemini yapmıyor
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
$white= imagecolorallocate($dst_r, 255, 255, 255);
imagefill($dst_r, 0, 0, $white);
şeklinde yaptığımda beyaz çıkıyor resimler
if içersindeki alanın tamamı şu şekilde
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
$white = imagecolorallocate($dst_r, 255, 255, 255);
imagefill($dst_r, 0, 0, $white);
$img_r = imagecreatefrompng($src);
imagecopyresampled($dst_r,$img_r,0,0,$post_x,$post_y, $targ_w,$targ_h,$_POST['w'],$_POST['h']);
header('Content-type: image/png');
imagepng($dst_r,"../Images/SecenekResimleri/" . $YeniFotografAdi,$jpeg_quality);
hatam nerede tam olarak biri akıl verebilir mi lütfen :(
-
Üyelik
02.07.2016
-
Yaş/Cinsiyet
39 / E
-
Meslek
Webmaster
-
Konum
İstanbul Avrupa
-
Ad Soyad
B** O**
-
Mesajlar
1705
-
Beğeniler
820 / 523
-
Ticaret
19, (%100)
Yukarıda önerdiğim classı tercih etmeyi deneyiniz.
-
Üyelik
09.08.2014
-
Yaş/Cinsiyet
37 / E
-
Meslek
Siber Güvenlik Danışmanı
-
Konum
İstanbul Anadolu
-
Ad Soyad
K** A**
-
Mesajlar
294
-
Beğeniler
19 / 26
-
Ticaret
3, (%100)
sorunum Quality ayarındanmış.
imagepng($dst_r,"../Images/SecenekResimleri/" . $YeniFotografAdi,$jpeg_quality);
olan kısmında Jpeg quality olarak 0 dan 100 e kadar değer alıyor. PNG quality ayarları ise 0 dan 9 a kadar oluyor. değeri 9 yapınca çözüldür. Çok teşekkürler cevaplar için. İyi günler.