|
|
|
| Вот скрипт рисования копирайтов
<?php
/
//заголовок
header ("Content-type: image/png");
//оригинальное изображение (в данном случаи 128*97
$img = imagecreatefromjpeg("example.jpg");
/*
*все координаты задаются от ВЕРХНЕГО ЛЕВОГО угла изображения (там 0.0)
*/
//верхняя левая точка прямоугольника (все изображение в примере 128*97)
$x1=50;
$y1=5;
//нижняя правая точка прямоугольника (все изображение в примере 128*97)
$x2=125;
$y2=20;
//степень прозрачности прямоугольника
$DARKNESS=100;
//цвет прямоугольника
$dark = imagecolorallocatealpha($img, 0, 0, 0, $DARKNESS);
//рисуем прямоугольник
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$dark);
//цвет надписи (белый)
$white=imagecolorallocate($img,255,255,255);
//координаты надписи (где-то в прямоугольнике ;) )
$x=55;
$y=10;
//рисуем надпись
imagestring($img,1,$x,$y,"snippets.pp.ru",$white);
//выводим и освобождаем память
imagepng($img);
imagedestroy($img);
?>
|
Вопрос: Как можно таким делом обработать всю папку сразу?
Что переделать?
Скрипт не мой и умеет работать только с 1м файлом,а мне надо стоб всю папку сразу...
Помогите кто чем может... | |
|
|
|
|
|
|
|
для: nek-v
(23.04.2008 в 19:40)
| | Открывайте каждый файл и наносите, вы не можете применить GD-функцию сразу к нескольким файлам одновременно. | |
|
|
|
|
|
|
|
для: nek-v
(23.04.2008 в 19:40)
| | можно попробовать сделать из этого что нормальное...
<?php
$dir=opendir('img');
while ($file=readdir ($dir))
{
if ($file!=='.' && $file!=='..')
image_copy ('img/'.$file);
}
closedir ($dir);
function image_copy($file)
{
//заголовок
header ("Content-type: image/png");
//оригинальное изображение (в данном случаи 128*97
$img = imagecreatefromjpeg($file);
/*
*все координаты задаются от ВЕРХНЕГО ЛЕВОГО угла изображения (там 0.0)
*/
//верхняя левая точка прямоугольника (все изображение в примере 128*97)
$x1=50;
$y1=5;
//нижняя правая точка прямоугольника (все изображение в примере 128*97)
$x2=125;
$y2=20;
//степень прозрачности прямоугольника
$DARKNESS=100;
//цвет прямоугольника
$dark = imagecolorallocatealpha($img, 0, 0, 0, $DARKNESS);
//рисуем прямоугольник
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$dark);
//цвет надписи (белый)
$white=imagecolorallocate($img,255,255,255);
//координаты надписи (где-то в прямоугольнике ;) )
$x=55;
$y=10;
//рисуем надпись
imagestring($img,1,$x,$y,"snippets.pp.ru",$white);
//выводим и освобождаем память
imagepng($img,rand(0,200).'.jpg');
imagedestroy($img);
}
?>
|
из папки img все картинки снабдилисиль нужной надписью и сохранились каталогом выше. | |
|
|
|
|
|
|
|
для: Alph[p]a
(23.04.2008 в 20:23)
| | Спасибо!!! Работает!!! :)))) Большой респект тебе Alph[p]a
Теперь бы кто прикрутил к этому скрипту поле для ввода своего текста копирайта вообще супер бы было... | |
|
|
|
|
|
|
|
для: nek-v
(23.04.2008 в 22:44)
| | Попросите слесаря, он прикрутит. )) А что там прикручивать, так понимаю это вы (как админ) будете надписи наносить. Делайте форму с полем типа text, даете ей имя, например:
<form action="scriptname.php" method="post">
<input type="text" name="mark">
<input type="submit" value="Send">
</form>
|
Теперь получаете, после отправки, формы $_POST['mark'] и это значение передаете в качестве аргумента в функцию:
<?php
$mark = trim($_POST['mark']); //это ваша надпись, только добавить проверку ее получения надо
function image_copy($file,$mark) //а тут передали ее в функцию
{
//рисуем надпись
imagestring($img,1,$x,$y,$mark,$white); //а вот вставили в картинку
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(23.04.2008 в 22:55)
| | Спасибо. Есть и еще вопросы но свет отключили а батарея на ноуте сдыхает.
Пока вопрос: как автоматизировать этот процесс? допустем юзер загружает картинку через форму (типа обменника) надо чтобы на все загружаемые файлы автоматом ставился копирайт.
Объясните сам принцип,а по возможности помогите кодом...
Вам вообще тогда цены не будет :-)))
на сегодня я Off, всем еще раз спасибо... | |
|
|
|
|
|
|
|
для: nek-v
(23.04.2008 в 23:06)
| | Предлагаю такой алгоритм
все вновь загруженные картинки помещаются в папку dir1, на следующем этапе обрабатываешь эту папку вышеприведенным скриптом, обработанное изображение переносишь в рабочую папку dir2, из dir1 все удаляешь. | |
|
|
|
|
|
|
|
для: Drl31
(23.04.2008 в 23:13)
| | Зачем, что перед перемещением нельзя надпись добавить? Зачем перелопачивать папки? | |
|
|
|
|
|
|
|
для: nek-v
(23.04.2008 в 23:06)
| | Ну тогда, при получении изображения от юзера, перед помещением его в каталог, вызывайте эту функцию, а уж потом помещайте изображение с надписью в нужный каталог. Ну не юзер будут же определять надпись копирайта, потому форма для вас как админа, чтобы определить (константой в конфиге, записью в базе и т.п..) надпись вашего копирайта, вот это и надо передавать в функцию, а не то что получаете из формы. | |
|
|
|
|
|
|
|
для: sim5
(23.04.2008 в 23:23)
| | ага, примерно понятно....
ну а в коде как будет выглядеть?
хотя бы примерно,дальше я там сам попробую...
Важно чтобы я не принимал участия в написани копирайтов,а чтобы автоматом призагрузке и сразу на вывод юзеру | |
|
|
|
|
|
|
|
для: nek-v
(24.04.2008 в 08:30)
| |
<?php
if(is_uploaded_file($_FILES['file']['tmp_name'])){
copyRate($_FILES['file']);
}
function copyRate($file){
//заголовок
header ("Content-type: image/png");
//оригинальное изображение (в данном случаи 128*97
$img = imagecreatefromjpeg($file['tmp_name']);
/*
*все координаты задаются от ВЕРХНЕГО ЛЕВОГО угла изображения (там 0.0)
*/
//верхняя левая точка прямоугольника (все изображение в примере 128*97)
$x1=50;
$y1=5;
//нижняя правая точка прямоугольника (все изображение в примере 128*97)
$x2=125;
$y2=20;
//степень прозрачности прямоугольника
$DARKNESS=100;
//цвет прямоугольника
$dark = imagecolorallocatealpha($img, 0, 0, 0, $DARKNESS);
//рисуем прямоугольник
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$dark);
//цвет надписи (белый)
$white=imagecolorallocate($img,255,255,255);
//координаты надписи (где-то в прямоугольнике ;) )
$x=55;
$y=10;
//рисуем надпись
imagestring($img,1,$x,$y,"snippets.pp.ru",$white);
//---------------------------------------------
switch(strtolower($file['type'])){
case "image/jpeg" : $pictype=".jpg"; break;
case "image/pjpeg": $pictype=".jpg"; break;
case "image/gif" : $pictype=".gif"; break;
case "image/png" : $pictype=".png"; break;
case "image/x-png": $pictype=".png"; break;
default : $pictype=""; break;
}
$uniq=md5(uniqid(rand(),1));
$new=$uniq.$pictype;
//выводим и освобождаем память
imagepng($img,$new);
imagedestroy($img);
}
?>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="Add" />
</form>
|
| |
|
|
|
|
|
|
|
для: ONYX
(24.04.2008 в 09:39)
| | ну чтож, попробуем...
Всем спасибо... | |
|
|
|