Loading...
Обучение/Помощь новичкам | Налаживание картинки с GET-ом
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл

Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)

Подумать надо почему так

вот сам скрипт

<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>

________
посл. ред. 02.10.2015 в 19:16; всего 2 раз(а); by Mr_Ezzy
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл

Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)

Подумать надо почему так

вот сам скрипт

<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>


У картинок расширения и расположение на хосте отличаются?
Mr_Ezzy , и что в итог? Он пустой будет! Так как вы ссылку до пути не брали картинку чтобы показать.
CreepMatis (02.10.2015 в 19:17)
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл

Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)

Подумать надо почему так

вот сам скрипт

<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>


У картинок расширения и расположение на хосте отличаются?

png обе и обе в одной папке
262110938 (02.10.2015 в 19:20)
Mr_Ezzy , и что в итог? Он пустой будет! Так как вы ссылку до пути не брали картинку чтобы показать.

"Так как вы ссылку до пути не брали картинку чтобы показать. "?
Mr_Ezzy (02.10.2015 в 19:21)
CreepMatis (02.10.2015 в 19:17)
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл

Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)

Подумать надо почему так

вот сам скрипт

<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>


У картинок расширения и расположение на хосте отличаются?

png обе и обе в одной папке

Ну так кто мешает подсовывать в get название картинки без png? А в скрипте уже получать название и слить с путем до картинки и расширения.
$img = '/images/'.$_GET['img'].'.png';
Mr_Ezzy , сначало сделай file_exists() проверку на файл если есть то выводи, а если ошибка то делаем статус 500. Иначе несушествуюшие файлы будет создавать пустой картинка.
CreepMatis , 0 толку
самый оптимальный-оптимизация вот код

function LoadJpeg($imgname)
{
/* Пытаемся открыть */
$im = @imagecreatefromjpeg($imgname);

/* Если не удалось */
if(!$im)
{
/* Создаем пустое изображение */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);

imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

/* Выводим сообщение об ошибке */
imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
}

return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>
Mr_Ezzy , и еше автор дам заметку ты пытаешься загрузить картинку png функцией imagecreatefromjpeg

то добавлю для безопасности и без шелла.

<?php
function imageCreateFromAny($filepath) {
$type = exif_imagetype($filepath); // [] if you don't have exif you could use getImageSize()
$allowedTypes = array(
1, // [] gif
2, // [] jpg
3, // [] png
6 // [] bmp
);
if (!in_array($type, $allowedTypes)) {
return false;
}
switch ($type) {
case 1 :
$im = imageCreateFromGif($filepath);
break;
case 2 :
$im = imageCreateFromJpeg($filepath);
break;
case 3 :
$im = imageCreateFromPng($filepath);
break;
case 6 :
$im = imageCreateFromBmp($filepath);
break;
}
return $im;
}
?>
Онлайн: 2
Время:
Gen. 0.1078
(c) Bym.Guru 2010-2026