[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Текст на месте изображение (вопрос от новичка)
eXtrich
Всем привет. Заранее прошу прощение, что зарегался и сразу с бестолковыми вопросами, ну да ладно, сразу к делу. У меня есть в шапке изображение, так сказать подложка и задача выводить поверх этой подложки текст. Вариант написать что нибудь на подложке в PS и залить на сайт не подходит, нужно решение на php. Заранее спасибо...



Спустя 24 минуты, 44 секунды (17.12.2010 - 16:56) linker написал(а):
Либо GD, либо шапку в бэкграунд и поверх тупо текст, но это HTML.

Спустя 4 минуты, 42 секунды (17.12.2010 - 17:00) eXtrich написал(а):
Либо GD - вот тут попрошу поподробнее. Начнем с того что такое GD?

Спустя 10 минут, 38 секунд (17.12.2010 - 17:11) sharki написал(а):
eXtrich
Гугл в помощь, он тебе объяснит, покажет и тыкнет носом =)

Спустя 21 минута, 31 секунда (17.12.2010 - 17:33) eXtrich написал(а):
Так, с GD я разобрался, но вопрос таков, как в этот код:
<a href="<?php bloginfo('url'); ?>/"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.jpg" alt="" /></a>

вставить
// Добавляем текст на картинку
imagestring($image,21,0,0,'Some text...',$text_color);

Спустя 29 минут, 7 секунд (17.12.2010 - 18:02) Lawyer написал(а):
если поможет - вот когда-то писал GD для генерации кнопки по шаблону
страница запроса:

<html>
<head>
<title>
Форма создания кнопок по шаблонам</title>
</head>
<body>

Выбирите шаблон<br>
<form
method="post" action="ob.php" target="_blank">
<input
type="radio" name="booton" value="1" checked><img src="button1.gif"><br>
<input
type="radio" name="booton" value="2"><img src="button2.gif"><br>
<input
type="radio" name="booton" value="3"><img src="button3.gif"><br><br>
Введите текст будующей кнопки<br>
<input
type="text" name="string" value="home" size="13" maxlength="13">
<br><br>

Введите RGB цвет
<input type="text" name="textcolor" value="000000" size="6" maxlength="6">
<br><br><br>
<input
type="submit" value="Сгенерировать">
</form>
</body>
</html>


страница генерации

<?php
// Обработка переданных методом пост из формы данных и присваивание их переменным
$boo = !empty($_POST['booton']) ? $_POST['booton'] : null;
$tex = !empty($_POST['string']) ? $_POST['string'] : null;
$hex = !empty($_POST['textcolor']) ? $_POST['textcolor'] : null;
//переводим HEX RGB в DEC RGB
$txtcolor = $hex;
sscanf ($txtcolor, "%2x%2x%2x", $red, $green, $blue);
// Получаем строку текста
$string = $tex;
if (!$string) $string = "error";
// загружаем рисунок-шаблон
$im = imageCreateFromGif ("button$boo.gif");
// Создаем в палитре новый цвет
$color = imageColorAllocate ($im, $red, $green, $blue);
//Вычисляем размеры выводимого текста
$px = (imageSX ($im)-6.5*strlen ($string))/2;
// выводим строку поверх картинки
imageString ($im, 3, $px, 5, $string, $color);
// Конвентируем в PNG
Header ("content-type: image/png");
// отправляем данные в браузер
imagePng ($im);
// освобождаем память, занятую картинкой
imageDestroy ($im);
?>


P.S. так же есть пример для get

Спустя 4 минуты, 21 секунда (17.12.2010 - 18:06) Lawyer написал(а):
а по вопросу, может так...:

<?php
$image="<img src=".bloginfo('stylesheet_directory')."/images/logo.jpg>";
$text_color=000000;
?>
<a href="<?php bloginfo('url'); ?>/">
<?php
imagestring($image,21,0,0,'Some text...',$text_color);
?>
</a>


Спустя 3 часа, 34 минуты, 59 секунд (17.12.2010 - 21:41) eXtrich написал(а):
Lawyer, не работает. ХЗ в чем проблема, но ошибку сам устранить не могу, марался пол часа...
Warning: imagestring(): supplied argument is not a valid Image resource in /home/extri154/domains/buildfort.ru/public_html/wp-content/themes/realstate/header.php on line 36

Спустя 1 час, 6 минут, 52 секунды (17.12.2010 - 22:48) Lawyer написал(а):
попробуй так:

<?php
// Получаем строку текста
$string = $_SERVER['QUERY_STRING'];
if (!$string) $string = "button";
// загружаем рисунок-шаблон
$im = imageCreateFromGif ("button.gif");
// Создаем в палитре черный цвет
$color = imageColorAllocate ($im, 0, 0, 0);
//Вычисляем размеры выводимого текста
$px = (imageSX ($im)-6.5*strlen ($string))/2;
// выводим строку поверх картинки
imageString ($im, 3, $px, 5, $string, $color);
// Конвентируем в PNG
Header ("content-type: image/png");
// отправляем данные в браузер
imagePng ($im);
// освобождаем память, занятую картинкой
imageDestroy ($im);
?>

заменяешь button.gif на свою картинку, только для этого примера картинка должна быть в формате gif, если надо в jpg, меняй на imagecreatefromjpeg для png соответственно imagecreatefrompng
для вывода, там где надо отобразить пишешь следующее:

<img src="button.php?Index">

вместо Index - свой текст
P.S. работать данный код будет находясь рядом с картинкой (в одной директории), в противном случае - поправь код!

Спустя 10 часов, 30 минут, 25 секунд (18.12.2010 - 09:18) eXtrich написал(а):
Warning: Cannot modify header information - headers already sent by (output started at /home/extri154/domains/buildfort.ru/public_html/wp-content/themes/realstate/header.php:2) in /home/extri154/domains/buildfort.ru/public_html/wp-content/themes/realstate/header.php on line 46
�PNG  ��� IHDR����������� 5533;�*IDATx���Ij�@��M N��zX��n�a�@ք<$���j}Z&# 65533;MQ������x���] ��1�<������y�N0+�a4^��v��~=+֩>��G��n5-7ʏ 33;/��j��fgȝ�_ �ŬD��X����+]�M�Y�� ;]N���%!��_>~���@}�<g�& #65533;Aj��׋�H�kȯ��C��p�& #65533;�o7�Y �Ŭ�bVbѕ�X��X�J@,���Y ��u�_��c�o����IEND�B`&# 65533;


Все страшней и страшней, я не знаю, мож чего напутал, вот собственно вся страница:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<head
profile="http://gmpg.org/xfn/11">
<meta
http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

<title><?php
bloginfo('name'); ?><?php wp_title(); ?></title>

<meta
name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->

<style type="text/css" media="screen">
@import url( <?php bloginfo('stylesheet_url'); ?> );
</style>

<link
rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link
rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link
rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />

<link
rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php
wp_get_archives('type=monthly&format=link'); ?>
<?php
//comments_popup_script(); // off by default ?>
<?php wp_head(); ?>
</head>

<body>
<div
class="wrap">
<div
class="header_wrap">
<div
id="header">
<h1>
<img
src="button.php?Index">
</h1>

<?php

// Получаем строку текста
$string = $_SERVER['QUERY_STRING'];
if (!$string) $string = "button";
// загружаем рисунок-шаблон
$im = imagecreatefromjpeg ("logo.jpg");
// Создаем в палитре черный цвет
$color = imageColorAllocate ($im, 0, 0, 0);
//Вычисляем размеры выводимого текста
$px = (imageSX ($im)-6.5*strlen ($string))/2;
// выводим строку поверх картинки
imageString ($im, 3, $px, 5, $string, $color);
// Конвентируем в PNG
Header ("content-type: image/png");
// отправляем данные в браузер
imagePng ($im);
// освобождаем память, занятую картинкой
imageDestroy ($im);
?>
<form
method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<div>
<input
value="" name="s" id="s" type="text" />
<input
id="searchsubmit" value="" type="submit" />
</div>
</form>
</div>
</div>
<div
class="content_wrap">
<div
id="content">
<!-- end header -->

Спустя 5 часов, 25 минут, 1 секунда (18.12.2010 - 14:43) Lawyer написал(а):
эту часть кода надо сохранить в файле button.php
Цитата (eXtrich @ 18.12.2010 - 06:18)
<?php
// Получаем строку текста
$string = $_SERVER['QUERY_STRING'];
if (!$string) $string = "button";
// загружаем рисунок-шаблон
$im = imagecreatefromjpeg ("logo.jpg");
// Создаем в палитре черный цвет
$color = imageColorAllocate ($im, 0, 0, 0);
//Вычисляем размеры выводимого текста
$px = (imageSX ($im)-6.5*strlen ($string))/2;
// выводим строку поверх картинки
imageString ($im, 3, $px, 5, $string, $color);
// Конвентируем в PNG
Header ("content-type: image/png");
// отправляем данные в браузер
imagePng ($im);
// освобождаем память, занятую картинкой
imageDestroy ($im);
?>

а вызывать в другом файле так

<img src="button.php?Index">

где button.php - имя и адрес файла, а ?Index собственно текст на картинке, точнее сам текст Index , а ? как бы связь...

Спустя 12 минут, 32 секунды (18.12.2010 - 14:56) Lawyer написал(а):
то есть у тебя должно быть минимум 3 файла:
1. картинка logo.jpg
2. файл button.php


<?php
// Получаем строку текста
$string = $_SERVER['QUERY_STRING'];
if (!$string) $string = "button";
// загружаем рисунок-шаблон
$im = imagecreatefromjpeg ("logo.jpg");
// Создаем в палитре черный цвет
$color = imageColorAllocate ($im, 0, 0, 0);
//Вычисляем размеры выводимого текста
$px = (imageSX ($im)-6.5*strlen ($string))/2;
// выводим строку поверх картинки
imageString ($im, 3, $px, 5, $string, $color);
// Конвентируем в PNG
Header ("content-type: image/png");
// отправляем данные в браузер
imagePng ($im);
// освобождаем память, занятую картинкой
imageDestroy ($im);
?>


3. файл для вызова сгенерированной картинки


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<
head profile="http://gmpg.org/xfn/11">
<
meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

<
title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

<
meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->

<
style type="text/css" media="screen">
@import url( <?php bloginfo('stylesheet_url'); ?> );
</
style>

<
link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<
link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<
link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />

<
link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_get_archives('type=monthly&format=link'); ?>
<?php
//comments_popup_script(); // off by default ?>
<?php wp_head(); ?>
</head>

<
body>
<
div class="wrap">
<
div class="header_wrap">
<
div id="header">
<
h1>
<
img src="button.php?Creativ_Web_Studio">
</
h1>
<
form method="get" id="searchform" action="<?php bloginfo('url'); ?>/">
<
div>
<
input value="" name="s" id="s" type="text" />
<
input id="searchsubmit" value="" type="submit" />
</
div>
</
form>
</
div>
</
div>
<
div class="content_wrap">
<
div id="content">


причем файл logo.jpg и button.php должны быть в одной директории, в противном случае нужно поправить код, а ссылка на генерацию надписи должно иметь полный путь до файла button.php , то есть если файл расположен в папке doc/img/logo/ относительно корневой директории то путь будет таким :
<img src="doc/img/logo/button.php?Creativ_Web_Studio">
если же файл с которого вызывается генерация расположен к примеру в директории doc/file/ то вызываться будет уже так:
<img src="../img/logo/button.php?your_text">
либо так же возможно вызвать генерацию указав полный путь до файла в интернет к примеру если файл находится по адресу mod/button.php на домене phpforum.ru то адрес будет следующим:
<img src="http://www.phpforum.ru/mod/button.php?your_text">

Ну вроде понятнее уже некуда :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.