- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, столкнулся с проблемой. Не могу после селекта в цикле вайл выполнять следуюющее:
$result = mysql_query("SELECT id, rating, weight, height, folder, category FROM dle_post WHERE folder='".$date."' ORDER BY rating DESC LIMIT 30");
while($row = mysql_fetch_array($result))
{
$ii++;
if ($row['category'] != 0 AND $row['category'] != 3) {
$false = 0;
if ($row['weight'] >= 2560 && $row['height'] >= 1600 && $false == 0) {
$a = 2560; $b = 1600;
$aa = $a-145; $bb = $b-23;
$image = new imagick("images/".$row['folder']."/site_name_".$row['id'].".jpg");
$text = "www.watermark.com";
$draw = new ImagickDraw();
$draw->setGravity( Imagick::GRAVITY_CENTER );
$draw->setFont( "Comfortaa.ttf" );
$draw->setFontSize( 18 );
$im = new imagick();
$properties = $im->queryFontMetrics( $draw, $text );
$watermark['w'] = intval( $properties["textWidth"] + 5 );
$watermark['h'] = intval( $properties["textHeight"] +5 );
$im->newImage( $watermark['w'], $watermark['h'],
new ImagickPixel( "transparent" ) );
$it = $image->getPixelRegionIterator( 0, 0, $watermark['w'], $watermark['h'] );
$luminosity = 0;
$i = 0;
while( $row = $it->getNextIteratorRow() )
{
foreach ( $row as $pixel )
{ $hsl = $pixel->getHSL();
$luminosity += $hsl['luminosity'];
$i++; }
}
$textColor = ( ( $luminosity / $i )> 0.5 ) ?
new ImagickPixel( "black" ) :
new ImagickPixel( "white" );
$draw->setFillColor( $textColor );
$draw->setFillAlpha( 0.5 );
$im->setGravity( Imagick::GRAVITY_CENTER );
$im->annotateImage( $draw, 0, 0, 0, $text );
$watermark = $im->clone();
$watermark->setImageBackgroundColor( $textColor );
$watermark->shadowImage( 10, 2, 2, 2 );
$watermark->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 );
$image->compositeImage( $watermark, Imagick::COMPOSITE_OVER, $aa, $bb );
$image->cropThumbnailImage( 2560, 1600 );
$image->writeImage( "tor/".$date."/site_name_$ii.jpg" );
$false = 1;
}
}
}
очень прошу помочь разобраться в чем же проблема(
Ошибку выдает: Fatal error: Cannot use object of type Imagick as array in /home/name/data/www/site.com/imtor.php on line 38
speen добавил 02.11.2010 в 14:26
апнусь, т.к. обновил и ошибку видно.
Проблема в этих строках:
Сначала вы в $row записвыаете результат от запроса из БД, а затем пытаетесь что-то с картинкой сделать.
Ругается он когда после работы с изображением пытаетесь объект как массив использовать.
Используйте другую переменную в каком-либо месте.