Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите с библиотекой GD...
 
 автор: Vadik   (25.04.2008 в 09:08)   письмо автору
 
 

Всем привет,
у меня возникла такая проблема: при создании рисунка средствами РНР вместо рисунка выводит непонятную "кракозябру", даже если написать вот такой простой код:


<?
$img
=imageCreate(100,100);
imagePNG($img);
?>


Может кто знает в чем дело?
Подскажите ПЛИЗ

   
 
 автор: Syava   (25.04.2008 в 09:26)   письмо автору
 
   для: Vadik   (25.04.2008 в 09:08)
 

Естественно выведет бинарный код, так как нет функции header()
Юзай:

<?
header
('Content-Type: image/png'); 
$img imageCreate(100100); 
imagePNG($img); 
?>

   
 
 автор: Vadik   (25.04.2008 в 10:31)   письмо автору
 
   для: Syava   (25.04.2008 в 09:26)
 

все равно таже беда, может эксплорер не понимает?

   
 
 автор: vitali   (25.04.2008 в 11:15)   письмо автору
 
   для: Vadik   (25.04.2008 в 10:31)
 

проверьте у Вас скорее всего пред выдачей "картинки" в браузер идет какая-то посылка

   
 
 автор: Vadik   (25.04.2008 в 12:23)   письмо автору
 
   для: vitali   (25.04.2008 в 11:15)
 

разумеется идет, но к картинке она не относится.

   
 
 автор: Syava   (25.04.2008 в 12:31)   письмо автору
 
   для: Vadik   (25.04.2008 в 12:23)
 

>разумеется идет, но к картинке она не относится.
А что именно то идёт?

   
 
 автор: Vadik   (25.04.2008 в 13:08)   письмо автору
 
   для: Syava   (25.04.2008 в 12:31)
 

выводится верхняя часть страницы из тпл файла

   
 
 автор: Axxil   (25.04.2008 в 12:36)   письмо автору
 
   для: Vadik   (25.04.2008 в 12:23)
 

Нельзя ничего выводить в браузер до отправки заголовков HTTP функцией header.

Вам лучше создать отдельный файл, типа image.php где и создавать картинку. А обращаться к ней из скрипта в нужном месте просто как к картинке:

<img src="image.php">

   
 
 автор: Vadik   (25.04.2008 в 13:10)   письмо автору
 
   для: Axxil   (25.04.2008 в 12:36)
 

дело в том, что картинок аких не одна, и для каждой создавать файл?

   
 
 автор: Axxil   (25.04.2008 в 13:15)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:10)
 

можно в этом файле разместить всю логику по созданию картинок, в зависимости от параметров. А параметры передавать через GET.
<img src="image.php?param1=1&param2=2">

   
 
 автор: Andy™   (25.04.2008 в 11:15)   письмо автору
 
   для: Vadik   (25.04.2008 в 10:31)
 

Так заработает:
<?php
header
('Content-Type: image/png');  
$img imageCreateTrueColor(100100);  
imagePNG($img);  die();
?> 

   
 
 автор: Vadik   (25.04.2008 в 12:20)   письмо автору
 
   для: Andy™   (25.04.2008 в 11:15)
 

и так не работает((!? думаю дело не в коде, я его как только не правил, что-то другое, сама библиотека работает

   
 
 автор: Syava   (25.04.2008 в 12:32)   письмо автору
 
   для: Andy™   (25.04.2008 в 11:15)
 

А gif/jpeg не пробовал? Png кажись не все браузеры понимают..

   
 
 автор: Vadik   (25.04.2008 в 12:41)   письмо автору
 
   для: Syava   (25.04.2008 в 12:32)
 

пробовал, не выходит(((

   
 
 автор: sim5   (25.04.2008 в 12:54)   письмо автору
 
   для: Vadik   (25.04.2008 в 12:41)
 

$img = imageCreateTrueColor(100, 100); - возвращает идентификатор чёрно-белого изображения указанного размера, как такового изображения пока нет. Что вы пытаетесь увидеть?

   
 
 автор: Vadik   (25.04.2008 в 12:57)   письмо автору
 
   для: sim5   (25.04.2008 в 12:54)
 

в том-то и дело, ничего не должно быть, а выводит бинарный код

   
 
 автор: Axxil   (25.04.2008 в 13:09)   письмо автору
 
   для: Vadik   (25.04.2008 в 12:57)
 

покажите весь скрипт, так проще будет.

   
 
 автор: Vadik   (25.04.2008 в 13:21)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:09)
 

<?php 

header
('Content-Type: image/jpg');
   
$img imageCreateTrueColor(320480);

$black imageColorAllocate($img000);

imageString ($img23055"www.ru"$black);

imageJPG($img);  die(); 

?> 


мне надо сделать чтоб на картинке была подпись(логотип), т.е. фон-готовая картинка будет

   
 
 автор: Axxil   (25.04.2008 в 13:22)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:21)
 

больше ничего в этом скрипте нет?

   
 
 автор: Vadik   (25.04.2008 в 13:27)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:22)
 

дак мне б хоть чтоб этот заработал, перед ним только шапка документа,
как мне писать код, если две строки не рубит!?

   
 
 автор: Axxil   (25.04.2008 в 13:33)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:27)
 

вот эта шапка и мешает. уберите её и всё заработает

   
 
 автор: Vadik   (25.04.2008 в 13:38)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:33)
 

убрал уже)

   
 
 автор: sim5   (25.04.2008 в 13:14)   письмо автору
 
   для: Vadik   (25.04.2008 в 12:57)
 

Этот код должен вывести у вас черный квадрат.

   
 
 автор: Vadik   (25.04.2008 в 13:24)   письмо автору
 
   для: sim5   (25.04.2008 в 13:14)
 

дак он кроме этой "кракозябры" ничего не выводит

   
 
 автор: Axxil   (25.04.2008 в 13:26)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:24)
 

значит у вас 100% идёт какой-то вывод до вывода картинки.

   
 
 автор: Vadik   (25.04.2008 в 13:29)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:26)
 

дак я уже и отдельным файлом сделал

   
 
 автор: Axxil   (25.04.2008 в 13:34)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:29)
 

 <?php  

header
('Content-Type: image/png'); 
    
$img imageCreateTrueColor(320480); 

$black imageColorAllocate($img000); 

imageString ($img23055"www.ru"$black); 

imagePNG($img);  die();  

?> 


вот этот код в отдельный php файл test.php вынесите и запустите. Что получится?

   
 
 автор: Vadik   (25.04.2008 в 13:38)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:34)
 

вот, так вывел черные прямоугольник, а с jpg так не работает

   
 
 автор: Axxil   (25.04.2008 в 13:41)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:38)
 

потому что функции такой imageJPG нет. Есть imageJPEG

   
 
 автор: Vadik   (25.04.2008 в 13:44)   письмо автору
 
   для: Axxil   (25.04.2008 в 13:41)
 

блин, ну звиняйте чайника, дальше сам попробую)) всем огромное СПАСИБО!!!

   
 
 автор: Vadik   (25.04.2008 в 13:46)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:44)
 

P.s.: у меня в справочнике походу опечатка, там "imageJPG"

   
 
 автор: sim5   (25.04.2008 в 14:08)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:46)
 

А у вас что вывод ошибок отключен?

   
 
 автор: Axxil   (25.04.2008 в 14:27)   письмо автору
 
   для: Vadik   (25.04.2008 в 13:46)
 

В такие моменты очень помогает редактор с подсветкой синтаксиса. Сразу видно что такой функции нет.

   
 
 автор: Syava   (25.04.2008 в 14:33)   письмо автору
 
   для: Axxil   (25.04.2008 в 14:27)
 

Когда стоит хэдер image сообщения об ошибках не будет.. Будет просто неоткрытая картинка..

   
 
 автор: Axxil   (25.04.2008 в 14:38)   письмо автору
 
   для: Syava   (25.04.2008 в 14:33)
 

если есть ошибка синтаксиса, то обязательно будет выведена ошибка PHP, если конечно стандартный вывод не отключён либо хитро не перехватывается.

Хотя в данном случае ошибка fatal и стандартными средствами её не перхватишь. Т.е. в любом случае вывод должен быть.

   
 
 автор: sim5   (25.04.2008 в 14:42)   письмо автору
 
   для: Syava   (25.04.2008 в 14:33)
 

Не правда:
Fatal error: Call to undefined function imageTRE() in Z:\home\myshop\www\main.php on line 4
Это когда я указал в строке - imageTRE($img);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования