Flickr icelemedim ama muhtemelen %80 üzeri kalite ile JPG kaydediyordurlar. %70 bile yeterli oluyor çoğu durumda.
Merhabalar farkındamısınız flickr'ın yeniden boyutlandırdığı fotoğraflarda hiçbir bozulma olmuyor. Bunu nasıl sağlıyorlar ?
Flickr icelemedim ama muhtemelen %80 üzeri kalite ile JPG kaydediyordurlar. %70 bile yeterli oluyor çoğu durumda.
"Kafanı kullanırsan, tatlı yemene rağmen şişmanlamazsın..." L.Lawliet
Kurt Bilişim <- Boş ama ilerleme var
Kaydetme kalitesi ile alakalı olduğunu sanmıyorum zaten %100 ile kaydediyorlardır fakat birde fotoğrafa ayrı bir filtre uyguluyorlar sanırım çünkü fotoğraflar tam istenilen keskinlikte bakın size bir görnek göstereyim;
http://img231.imageshack.us/img231/5523/38181988.jpg
Aradaki keskinlik ve parlaklık farkını gördünüzmü?
Yahoo iyi çalışıyor gerçekten![]()
bende merak ettim şimdi biz ufaltınca kendinden geçiyor resimresimlikten çıkıyor
PHP!
Gördüm ama bunu siz mi kaydettiniz? Denemek gerek. Photoshop'taki renk dengesi filtrelerine benzer bir şey uyguluyor olabilirler.
"Kafanı kullanırsan, tatlı yemene rağmen şişmanlamazsın..." L.Lawliet
Kurt Bilişim <- Boş ama ilerleme var
ben hic resim ufaltmayla falan ugrasmadim ama imagemagick kullanmanizi tavsiye ederim.
mengu.net - some kind of monster
Güzel, o halde PHP kodunuzu görebilir miyiz incelemek isteyenler içinFotoğraftaki kendi denememdir. Biri flickr dan alıntı diğeri ise PHP ile yapılmıştır.
Photoshop konusunda ayrıntılı bilgim yok, demek istediğim şu; photoshopta renk ayarlamaları, netleştirme vb. filtreler mevcut. PHPnin kendinde var olmasa bile photoshoptakilere benzer filtreleri kendileri yapmış olabilirler.
"Kafanı kullanırsan, tatlı yemene rağmen şişmanlamazsın..." L.Lawliet
Kurt Bilişim <- Boş ama ilerleme var
Şu linkdeki sınıfı kullanmıştım. Kod ise şuydu;
Şimdi tek sorun fotoğrafa filtre uygulayarak keskinleştirmek
PHP Kodu:<?php
// example use
// resizeImage("corrupted_image_1.jpg", "corrupted_image_resized.jpg", 100, 100, "jpg");
function chkImgExt($n){
$tmp = explode('.', $n);
$ext = strtolower(array_pop($tmp));
if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'png')
return $ext;
else
return false;
}
function resizeImage($src, $dest, $w, $h, $ext){
$real_path = dirname(__FILE__) . '/';
$tmpFile = $real_path."imagecache/".time().'TMP.'.$ext;
copy($src, $tmpFile); // you may use move_uploaded_file() if the $src is a $_FILES referance
@chmod($tmpFile, 0777);
$src = $tmpFile;
list($width, $height) = @getimagesize($src);
$new_width = $w;
$new_height = $h;
switch($ext){
case 'jpg':
$image = imagecreatefromjpeg($src);
break;
case 'jpeg':
$image = imagecreatefromjpeg($src);
break;
case 'gif':
$image = imagecreatefromgif($src);
break;
case 'png':
$image = imagecreatefrompng($src);
break;
}
// Resample
$image_p = @imagecreatetruecolor($new_width, $new_height);
if ( ($ext == 'gif') || ($ext == 'png') ) {
$trnprt_indx = imagecolortransparent($image);
// If we have a specific transparent color
if ($trnprt_indx >= 0) {
// Get the original image's transparent color's RGB values
$trnprt_color = imagecolorsforindex($image, $trnprt_indx);
// Allocate the same color in the new image resource
$trnprt_indx = imagecolorallocate($image_p, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
// Completely fill the background of the new image with allocated color.
imagefill($image_p, 0, 0, $trnprt_indx);
// Set the background color for new image to transparent
imagecolortransparent($image_p, $trnprt_indx);
}
// Always make a transparent background color for PNGs that don't have one allocated already
elseif ($ext == 'png'){
// Turn off transparency blending (temporarily)
imagealphablending($image_p, false);
// Create a new transparent color for image
$color = imagecolorallocatealpha($image_p, 0, 0, 0, 127);
// Completely fill the background of the new image with allocated color.
imagefill($image_p, 0, 0, $color);
// Restore transparency blending
imagesavealpha($image_p, true);
}
}
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
if(file_exists($dest)){
@unlink($dest);
}
// Output
switch($ext){
case 'jpg':
imagejpeg($image_p, $dest, 100);
break;
case 'jpeg':
imagejpeg($image_p, $dest, 100);
break;
case 'gif':
imagegif($image_p, $dest);
break;
case 'png':
imagepng($image_p, $dest);
break;
}
imagedestroy($image_p);
unlink($tmpFile);
return true;
}
resizeImage("1.jpg", "corrupted_image_resized.jpg", '640', '427', "jpg");
?>
Denedim şimdi sizin resmi de bulup, şu dikkatimi çekti. Sizin flickr resminin dosya bilgilerinde 72dpi olarak görünüyor ama bu kodun çıkardığı 96dpi. Bununla alakalı olabilir mi? Olabilirse PHPde dpi düşürmenin yolunu bilen var mı?Baktım ama ben göremedim.
"Kafanı kullanırsan, tatlı yemene rağmen şişmanlamazsın..." L.Lawliet
Kurt Bilişim <- Boş ama ilerleme var
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks