Вот нашел что то интересное (но всеровно не то)
Пример работы можно посмотреть тут
http://torrentphp.16mb.com/watermark.php
Кто нибудь может переписать код так, чтобы файл (картинка) не загружался на сервер а брался с сервера (тоесть файл будет уже залит) и на него просто наносился текст при нажатии кнопки СОЗДАТЬ
А для текста я уже нарыл код который будет передавать его с помощью POST из поля для ввода текста.
Вот сам код который нужно переписать
Код: Выделить всё
<?php// Если запускать под Linux, то указаваем что используемый нами шрифт лежит в этой же директорииputenv('GDFONTPATH=' . realpath('.')); // задаем переменные$image_path = "watermark.png"; // изображение$font_path = "GILSANUB.TTF"; // шрифт$font_size = 30; // размер шрифта в px$water_mark_text = "site.name"; // текст // подключаем используемые функцииinclude 'watermark.func.php'; $demo_image= "";// если нажата кнопка загрузкиif(isset($_POST['createmark'])){ // директория для хранения загружаемых изображений $path = "uploads/"; // массив разрешенных расширений $valid_formats = array("jpg", "bmp","jpeg"); // получаем имя загружаемого изображения $name = $_FILES['imgfile']['name']; // имя есть, то: if(strlen($name)) { // получаем тип загружаемого файла $ext = explode("/", $_FILES['imgfile']['type']); // если расширение принадлежит массиву разрешенных расширений и размер <= 2Мб, то загружаем изображение if(in_array($ext[1],$valid_formats)&& $_FILES['imgfile']['size'] <= 2*1024*1024) { // загружаем изображение $upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']); // при успешной загрузке if($upload_status) { // задаем директорию и имя для сохранения нового изображения $new_name = $path.time().".jpg"; // добавляем водяной знак: watermark_text() - для текста, watermark_image() - для изображения if(watermark_text($path.$_FILES['imgfile']['name'], $new_name)) $demo_image = $new_name; } else $msg="Загрузка не удалась!"; } else $msg="Превышен размер разружаемого файла (Max 2Мб). Либо изображение имеет не верный формат"; }} ?><html> <head> <title></title> </head> <body> <form name="imageUpload" id="imageUpload" method="post" enctype="multipart/form-data" > <fieldset> <legend>Загрузка изображения</legend> Изображение :<input type="file" name="imgfile" id="imgfile"/><br /> <input type="submit" name="createmark" id="createmark" value="Загрузка" /> </fieldset> <?php if(!empty($demo_image)) echo '<br/><center><img src="'.$demo_image.'" border="1"/></center>'; else echo '<h3>'.$msg.'</h3>'; ?> </form> </body></html>
А это я так понял вспомогательный файл для обработки
Код: Выделить всё
<?php /** * Наложение водяного знака в виде изображения * @param $oldimage_name - исходное изображение * @param $new_image_name - выходное изображение * @return Boolean */function watermark_image($oldimage_name, $new_image_name){ // получаем имя изображения, используемого в качестве водяного знака global $image_path; // получаем размеры исходного изображения list($owidth,$oheight) = getimagesize($oldimage_name); // задаем размеры для выходного изображения $width = 600; $height = 300; // создаем выходное изображение размерами, указанными выше $im = imagecreatetruecolor($width, $height); $img_src = imagecreatefromjpeg($oldimage_name); // наложение на выходное изображение, исходного imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight); $watermark = imagecreatefrompng($image_path); // получаем размеры водяного знака list($w_width, $w_height) = getimagesize($image_path); // определяем позицию расположения водяного знака $pos_x = $width - $w_width; $pos_y = $height - $w_height; // накладываем водяной знак imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height); // сохраняем выходное изображение, уже с водяным знаком в формате jpg и качеством 100 imagejpeg($im, $new_image_name, 100); // уничтожаем изображения imagedestroy($im); unlink($oldimage_name); return true;} /** * Наложение водяного знака в виде текста * @param $oldimage_name - исходное изображение * @param $new_image_name - выходное изображение * @return Boolean */function watermark_text($oldimage_name, $new_image_name){ // получение значений шрифта, размера и текста, используемых для наложение global $font_path, $font_size, $water_mark_text; // получаем размеры исходного изображения list($owidth,$oheight) = getimagesize($oldimage_name); // задаем размеры для выходного изображения $width = 600; $height = 300; // создаем выходное изображение размерами, указанными выше $image = imagecreatetruecolor($width, $height); $image_src = imagecreatefromjpeg($oldimage_name); // наложение на выходное изображение, исходного imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight); // задаем цвет для накладываемого текста $blue = imagecolorallocate($image, 79, 166, 185); // определяем позицию расположения водяного знака $pos_x = $width - (strlen($water_mark_text)-1)*$font_size; $pos_y = $height; // наложение текста на выходное изображение imagettftext($image, $font_size, 0, $pos_x, $pos_y, $blue, $font_path, $water_mark_text); // сохраняем выходное изображение, уже с водяным знаком в формате jpg и качеством 100 imagejpeg($image, $new_image_name, 100); // уничтожаем изображения imagedestroy($image); unlink($oldimage_name); return true;} ?>