ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #16371  
Старый 16.06.2010, 02:38
Аватар для Axel G
Axel G
Познающий
Регистрация: 28.01.2009
Сообщений: 32
Провел на форуме:
84089

Репутация: 1
По умолчанию

roxblnfk, вы правы не подействовало, тогда как это можно реализовать?? А кстати сама функция правильно написана?? Или же, как выразились выше, говнокод??
 
Ответить с цитированием

  #16372  
Старый 16.06.2010, 02:53
Аватар для roxblnfk
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
По умолчанию

Axel G, в плане читабельности кода - по мне нормально.
Если нет стандартных функций для переноса картинки на картинку с учётом альфа-потока, то при необходимоси можно написать такую функцию вручную (работать, правда, будет медленно)
Для начала надо определиться, накладываемая кортинка будет SOLID или ALPHA (как GIF или PNG, проще говоря [у GIF нету полупрозрачных пикселей]).
Наложение SOLID картинки проще реализовать и работает быстрее (накладывать, используя маску).

принцип: разбить накладываемую картинку на массив (она не должна быть большой), дальше перебором массива наложить пиксели на большое изображение с учётом прозрачности, например по функции:
($C1+($C2-$C1)*$A)
$C1, $C2 - соответствующие цветовые потоки (r,g,b) картинок
$A- прозрачность пикселя первой картинки
Для реализации особых познаний не потребуется, имхо.
 
Ответить с цитированием

  #16373  
Старый 16.06.2010, 03:14
Аватар для Axel G
Axel G
Познающий
Регистрация: 28.01.2009
Сообщений: 32
Провел на форуме:
84089

Репутация: 1
По умолчанию

хмм, на производительности играть я не могу, нужен быстродействующий скрипт. А еще можете подсказать, как наложение лупы реализовать, меня imagedestroy($dst_img); особо беспокоит, это получается надо условия ставить в function createThumb иначе память будет освобождена, второй день уже мыкаюсь, а все безрезультатно.
PHP код:
if ($_POST['watermark_thumb'] == "2") { // лупа

    

а вот само наложение, подсобите советом, куда этот код надо вставлять, и что если надо дописать, а то запутался по коду уже = (
PHP код:
// Start Zoom 

$image imagecreatefrompng($dst_img); // превью
$watermark imagecreatefrompng("theme/magnifying_glass.png"); // лупа

$ro=0//отступ от правого края
$lo=0//отступ сверху
$w imagesx($image); //ширина картинки
$h imagesy($image); //высота картинки
$ww imagesx($watermark); //ширина лупы
$wh imagesy($watermark); //высота лупы

imagecopy($image$watermark$w-$ww-$ro$h-$wh-$lo00$ww$wh); // с наложением все понятно = )

header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy  imagecopyresampled поставить, ведь так??

imagedestroy($image); // чистим память (превью) 
imagedestroy($watermark); // чистим память (лупа)

// End Zoom 
Исходник #Wolf#:
PHP код:
$image imagecreatefrompng('http://ipicture.ru/uploads/100611/H51orxCq6S.png');//картинка
$watermark imagecreatefrompng('http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png');//лупа
$ro=0;//отступ от правого края
$lo=0;//отступ сверху
$w imagesx($image);//ширина картинки
$h imagesy($image);//высота картинки
$ww imagesx($watermark);//ширина лупы
$wh imagesy($watermark);//высота лупы
imagecopy($image$watermark$w-$ww-$ro$h-$wh-$lo00$ww$wh);//копируем
#####вывод#########
header('Content-type: image/png');
imagepng($image);
#####/вывод#########
imagedestroy($image);  
imagedestroy($watermark); 

Последний раз редактировалось Axel G; 16.06.2010 в 03:26..
 
Ответить с цитированием

  #16374  
Старый 16.06.2010, 03:44
Аватар для roxblnfk
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
По умолчанию

Если я правильно понял, то
PHP код:
if ($_POST['watermark_thumb'] == "2") { // лупа
    
$image imagecreatefrompng($dst_img); // превью
    
$watermark imagecreatefrompng("theme/magnifying_glass.png"); // лупа
    
$ro=0//отступ от правого края
    
$lo=0//отступ сверху
    
$w imagesx($image); //ширина картинки
    
$h imagesy($image); //высота картинки
    
$ww imagesx($watermark); //ширина лупы
    
$wh imagesy($watermark); //высота лупы
    
imagecopy($image$watermark$w-$ww-$ro$h-$wh-$lo00$ww$wh); // с наложением все понятно = )
    
header('Content-type: image/png'); // (отравка хттп-заголовка) имеет ли он смысл в моем коде??
            // имеет, если выводится картинка
    
imagepng($image); // вывод, все понятно, т.е. мне надо убрать imagepng и вместо imagecopy  imagecopyresampled поставить, ведь так??
            // эээ.. чё? :) зачем imagecopyresampled ? оно же для наложения с изменением размера
    
imagedestroy($image); // чистим память (превью) 
    
imagedestroy($watermark); // чистим память (лупа) 

если гуглить водяную марку php:
http://www.codenet.ru/webmast/php/watermark/
http://jeka911.wordpress.com/2007/09/25/3_ways_to_add_watermark_to_image_in_php/
в общем много разной инфы

насчёт говнокодинга в createThumb()
POST запросы в функции подобного рода впихивать вредно, а если и надо, то лучше не
$thumb_q = $_POST['quality_thumb'];
а что-то типа:
$thumb_q = isset($_POST['quality_thumb']) ? intval($_POST['quality_thumb']) : 60;
Так же в параметры функции лучше вписывать ссылку на ресурс картинки а не путь до неё и тип (тип из имени и так определить можно, зачем его функции сообщать?)
Тут немного не ясно, как связан x и y (высота зависит от x, а длина от y)? oO (ну и elseif нагляднее и правильнее)
if ($old_x > $old_y){
$thumb_w = $new_w;
$thumb_h = $old_y*($new_h/$old_x);
}
if ($old_x < $old_y){....
 
Ответить с цитированием

  #16375  
Старый 16.06.2010, 03:55
Аватар для roxblnfk
roxblnfk
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме:
217996

Репутация: 56
Отправить сообщение для roxblnfk с помощью ICQ
По умолчанию

говоришь при ресайце заливается чёрным? вроде норм всё
[upd]
PHP код:
$image imagecreatefrompng('http://ipicture.ru/uploads/100611/H51orxCq6S.png');//картинка
$watermark imagecreatefrompng('http://ipicture.ru/uploads/100611/bSP3J7Q2Aj.png');//лупа
$ro=70;//отступ от правого края
$lo=30;//отступ сверху
$new_w=40;//длина лупы
$new_h=20;//вфсота лупы
$w imagesx($image);//ширина картинки
$h imagesy($image);//высота картинки
$ww imagesx($watermark);//ширина лупы
$wh imagesy($watermark);//высота лупы
if ($ww $wh){
    
$thumb_w $new_w;
    
$thumb_h $wh*($new_h/$ww);
}elseif(
$ww $wh){
    
$thumb_w $ww*($new_w/$wh);
    
$thumb_h $new_h;
}elseif(
$ww == $wh){
    
$thumb_w $new_w;
    
$thumb_h $new_h;
}
imagecopyresampled($image$watermark$w-$ww-$ro$h-$wh-$lo00$thumb_w$thumb_h,$ww,$wh);//копируем
#####вывод#########
header('Content-type: image/png');
imagepng($image);
#####/вывод#########
imagedestroy($image);  
imagedestroy($watermark); 

Последний раз редактировалось roxblnfk; 16.06.2010 в 04:06..
 
Ответить с цитированием

  #16376  
Старый 16.06.2010, 10:22
Аватар для НTL
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


Отправить сообщение для НTL с помощью ICQ
По умолчанию

Есть 2 числа $a и $b, большое число это 100% ,нужно найти % меньшего числа в большем, как это можно сделать? И записать эти проценты в перемены $ap (% для $a) и $bp (% для $b)
 
Ответить с цитированием

  #16377  
Старый 16.06.2010, 10:43
Аватар для Byte_
Byte_
Участник форума
Регистрация: 07.09.2008
Сообщений: 139
Провел на форуме:
351188

Репутация: 65
По умолчанию

Цитата:
Сообщение от НTL  
Есть 2 числа $a и $b, большое число это 100% ,нужно найти % меньшего числа в большем, как это можно сделать? И записать эти проценты в перемены $ap (% для $a) и $bp (% для $b)
Код:
if($a>$b)
{
$ap = 100;
$bp = ($b/$a)*100;
}else{
$ap = ($a/$b)*100;
$bp = 100;
}
как-то так походу
 
Ответить с цитированием

  #16378  
Старый 17.06.2010, 07:54
Аватар для FastFood
FastFood
Новичок
Регистрация: 08.06.2010
Сообщений: 2
Провел на форуме:
12395

Репутация: 0
По умолчанию

Всем привет, помогите с проблемой! Есть код
<html>
<head>
<title>First PHP script</title>
</head>
<body>
<?PHP
phpinfo();
echo "Hello";
?>
</body>
</html>
но по какой то причине он ничего не выдает на сервере, апач работает, ума не приложу в чем проблема? Вообще все что идет после тега <?php и до ?> не выводится на сервер, остается белая страница...И ещё вопрос как здесь на форуме выкладывать код чтобы он был как цитата, в рамке? Заранее спаибо!

Последний раз редактировалось FastFood; 17.06.2010 в 08:20..
 
Ответить с цитированием

  #16379  
Старый 17.06.2010, 09:24
Аватар для SHiNiGaMi
SHiNiGaMi
Познающий
Регистрация: 03.01.2010
Сообщений: 42
Провел на форуме:
162143

Репутация: 3
По умолчанию

Fastfood
1 расширение .php а не .html
2 [ php ] [/ php ]
 
Ответить с цитированием

  #16380  
Старый 17.06.2010, 10:41
Аватар для DoN
DoN
Познающий
Регистрация: 26.05.2010
Сообщений: 48
Провел на форуме:
110887

Репутация: 19
По умолчанию

Цитата:
Сообщение от FastFood  
Всем привет, помогите с проблемой! Есть код
<html>
<head>
<title>First PHP script</title>
</head>
<body>
<?PHP
phpinfo();
echo "Hello";
?>
</body>
</html>
но по какой то причине он ничего не выдает на сервере, апач работает, ума не приложу в чем проблема? Вообще все что идет после тега <?php и до ?> не выводится на сервер, остается белая страница...И ещё вопрос как здесь на форуме выкладывать код чтобы он был как цитата, в рамке? Заранее спаибо!
Сохраняй скрипт как название.php
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ