Merhaba,
Bir çok arkadaşın sorunu olan kendi hostlarina yukledikleri resimleri baska yerde kullanilmasi ve bu yuzden bandwidth sorunu yaşaması.
Bu konuya kendi cabalarımda bir çözüm ürettim.
bir adet resim.php miz var bu resim.php hazir bir kutuphane idi fakat değiştirmelerim sonucu istedigimizi yapabiliyoruz.
resim.php
Şimdi gelelim asıl olaya.
Örneğin resim resimler/bilmemne.jpg şeklinde olsun. Doğal olarak bu web sitenizde http://www.deneme.com/resimler/bilmemne.jpg olarak gözükecek ve isteyen bu resmi kullanabilecek, sizin href'inizi vererek.
Biz şu şekilde yapacağız
Resim linki şu şekilde olacaktır. resim.php?src=dGh1bWJzLzIuanBn&x=75&y=75&f=0&t=2&q=80
Görüldüğü üzere resim linki : dGh1bWJzLzIuanBn şeklini almıştır. Oysaki gerçek adresimiz: resimler/bilmemne.jpg dir.
Bu şekilde resimlerinizi gizleyebilirsiniz.
Afiyet olsun...
Bir çok arkadaşın sorunu olan kendi hostlarina yukledikleri resimleri baska yerde kullanilmasi ve bu yuzden bandwidth sorunu yaşaması.
Bu konuya kendi cabalarımda bir çözüm ürettim.
bir adet resim.php miz var bu resim.php hazir bir kutuphane idi fakat değiştirmelerim sonucu istedigimizi yapabiliyoruz.
resim.php
PHP:
<?php
$save_to_file = true;
$image_quality = 100;
$image_type = -1;
$max_x = 170; //Maksimum width
$max_y = 200; //Maksimum height
$thumbs_folder = ''; //Eğer resimlerinizi sabit bir klasorden cekmiyorsaniz boş bırakın
$to_name = '';
if (isset($_REQUEST['f'])) {
$save_to_file = intval($_REQUEST['f']) == 1;
}
if (isset($_REQUEST['src'])) {
$from_name = urldecode($_REQUEST['src']);
$from_name = base64_decode($from_name);
$from_name = str_replace("+","=",$from_name);
}
else {
die("Source file name must be specified.");
}
if (isset($_REQUEST['dest'])) {
$to_name = urldecode($_REQUEST['dest']);
}
else if ($save_to_file) {
die("Thumbnail file name must be specified.");
}
if (isset($_REQUEST['q'])) {
$image_quality = intval($_REQUEST['q']);
}
if (isset($_REQUEST['t'])) {
$image_type = intval($_REQUEST['t']);
}
if (isset($_REQUEST['x'])) {
$max_x = intval($_REQUEST['x']);
}
if (isset($_REQUEST['y'])) {
$max_y = intval($_REQUEST['y']);
}
function SaveImage($type, $im, $filename, $quality, $to_file = true) {
$res = lisanssız;
// ImageGIF is not included into some GD2 releases, so it might not work
// output png if gifs are not supported
if(!function_exists('imagegif')) $type = 3;
switch ($type) {
case 1:
if ($to_file) {
$res = ImageGIF($im,$filename);
}
else {
header("Content-type: image/gif");
$res = ImageGIF($im);
}
break;
case 2:
if ($to_file) {
$res = ImageJPEG($im,$filename,$quality);
}
else {
header("Content-type: image/jpeg");
$res = ImageJPEG($im,'',$quality);
}
break;
case 3:
if ($to_file) {
$res = ImagePNG($im,$filename);
}
else {
header("Content-type: image/png");
$res = ImagePNG($im,'',$quality);
}
break;
}
return $res;
}
function ImageCreateFromType($type,$filename) {
$im = lisanssız;
switch ($type) {
case 1:
$im = ImageCreateFromGif($filename);
break;
case 2:
$im = ImageCreateFromJpeg($filename);
break;
case 3:
$im = ImageCreateFromPNG($filename);
break;
}
return $im;
}
// generate thumb from image and save it
function GenerateThumbFile($from_name, $to_name, $max_x, $max_y) {
global $save_to_file, $image_type, $image_quality;
// if src is URL then download file first
$temp = false;
if (substr($from_name,0,7) == 'http://') {
$tmpfname = tempnam("tmp/", "TmP-");
$temp = @fopen($tmpfname, "w");
if ($temp) {
@fwrite($temp, @file_get_contents($from_name)) or die("Cannot download image");
@fclose($temp);
$from_name = $tmpfname;
}
else {
die("Cannot create temp file");
}
}
// get source image size (width/height/type)
// orig_img_type 1 = GIF, 2 = JPG, 3 = PNG
list($orig_x, $orig_y, $orig_img_type, $img_sizes) = GetImageSize($from_name);
// should we override thumb image type?
$image_type = ($image_type != -1 ? $image_type : $orig_img_type);
// check for allowed image types
if ($orig_img_type < 1 or $orig_img_type > 3) die("Image type not supported");
if ($orig_x > $max_x or $orig_y > $max_y) {
// resize
$per_x = $orig_x / $max_x;
$per_y = $orig_y / $max_y;
if ($per_y > $per_x) {
$max_x = $orig_x / $per_y;
}
else {
$max_y = $orig_y / $per_x;
}
}
else {
// keep original sizes, i.e. just copy
if ($save_to_file) {
@copy($from_name, $to_name);
}
else {
switch ($image_type) {
case 1:
header("Content-type: image/gif");
include($from_name);
break;
case 2:
header("Content-type: image/jpeg");
include($from_name);
break;
case 3:
header("Content-type: image/png");
include($from_name);
break;
}
}
return;
}
if ($image_type == 1) {
// should use this function for gifs (gifs are palette images)
$ni = imagecreate($max_x, $max_y);
}
else {
// Create a new true color image
$ni = ImageCreateTrueColor($max_x,$max_y);
}
// Fill image with white background (255,255,255)
$white = imagecolorallocate($ni, 255, 255, 255);
imagefilledrectangle( $ni, 0, 0, $max_x, $max_y, $white);
// Create a new image from source file
$im = ImageCreateFromType($orig_img_type,$from_name);
// Copy the palette from one image to another
imagepalettecopy($ni,$im);
// Copy and resize part of an image with resampling
imagecopyresampled(
$ni, $im, // destination, source
0, 0, 0, 0, // dstX, dstY, srcX, srcY
$max_x, $max_y, // dstW, dstH
$orig_x, $orig_y); // srcW, srcH
// save thumb file
SaveImage($image_type, $ni, $to_name, $image_quality, $save_to_file);
if($temp) {
unlink($tmpfname); // this removes the file
}
}
// generate
GenerateThumbFile($from_name, $thumbs_folder. $to_name, $max_x, $max_y);
?>
Şimdi gelelim asıl olaya.
Örneğin resim resimler/bilmemne.jpg şeklinde olsun. Doğal olarak bu web sitenizde http://www.deneme.com/resimler/bilmemne.jpg olarak gözükecek ve isteyen bu resmi kullanabilecek, sizin href'inizi vererek.
Biz şu şekilde yapacağız
PHP:
<?
$resim="resimler/bilmemne.jpg";
$sifrele=base64_encode($resim);
$sifrele=str_replace("=","+",$sifrele);
?>
<img src="resim.php?src=<?=$sifrele?>&x=75&y=75&f=0&t=2&q=80"/>
<?
# linkte verilen &y resmin height'u &x ise width'idir. buradan ayarlayabilirsiniz.
?>
Görüldüğü üzere resim linki : dGh1bWJzLzIuanBn şeklini almıştır. Oysaki gerçek adresimiz: resimler/bilmemne.jpg dir.
Bu şekilde resimlerinizi gizleyebilirsiniz.
Afiyet olsun...