Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php)Сохранение изображения / 3 сообщений из 3, страница 1 из 1
26.01.2006, 20:11
    #33506054
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php)Сохранение изображения
Доброго времени суток,

Подскажите пожалуйста как можно сохранить создное изображение в определеный файл? Я создаю изображение в png, но оно прописывается в код страницы и если перед ним стоит какой то теkcт то php ругается что не может в хедер внести информацию. А я бы хотел сделать просто следующее - создать картинку и ее сохранить и потом ссылатся на сохраненный файл. Как можно это сделать? Код который я использую для создания картинки следующий:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
<?php
class QR_Graph
{
	var $width 		   =  300 ;
	var $height		   =  300 ;
	var $offset_top		  =  40 ;
	var $offset_left	   =  40 ;
	var $offset_right         =  5 ;
	var $offset_bottom      =  30 ;
	var $font_name		 = 'fonts/font.ttf';
	var $font_size		   =  7 ;
	var $title		      = 'No title';
	var $data		    = array();
	
	var $colors = array(0x0000FF, 0xFF0000, 0x00FF00, 0xFFFF00, 0x00FFFF, 0xFF00FF);

	function QR_Graph($data, $title)
	{
		$this->data  = $data;
		$this->title = $title;
	}
	
	function draw()
	{	             
	  // Считаем ширину столбцов 
	  $col_width =  50 ;//($this->width - $this->offset_left - $this->offset_right) / count($Data); 
	
	  // Считаем высоту столбца, соответствующего максимальному значению 
	  $col_maxheight = ($this->height - $this->offset_top  - $this->offset_bottom); 
	
	  // Ищем максимальное значение в массиве, соответствующее столбцу максимальной высоты 
	  $max_value = max($this->data); 
	
	  $image = imagecreatetruecolor($this->width,$this->height) // создаем изображение... 
	    or die('Cannot create image');     // ...или прерываем работу скрипта в случае ошибки 
	
	  imagefill($image,  0 ,  0 , 0xFFFFFF);  // белый фон
	
	  // рисуем столбцы 
	  $x = $this->offset_left; 
	  $y = $this->offset_top + $col_maxheight; 
	  $i =  0 ; 
	  
	  foreach($this->data as $name => $value) { 
	    imagefilledrectangle(              // рисуем сплошной прямоугольник
	      $image, 
	      $x, 
	      $y - round($value*$col_maxheight/$max_value), 
	      $x + $col_width -  1 , 
	      $y, 
	      $this->colors[$i++%count($this->colors)]
	    );
	
	    // Выводим текст:
	    // .. преобразование в Unicode...
	    $text = $this->win2unicode($name);
	    // .. расчет координат...
	    $coord = imagettfbbox($this->font_size, 0 ,$this->font_name,$text);
	    $text_x = $x + ($col_width - $coord[ 2 ] - $coord[ 0 ]) /  2 ;
	    $text_y = $this->height -  5 ;
	    // .. и вывод текста
	    imagettftext($image,$this->font_size, 0 ,$text_x,$text_y,0x000000,$this->font_name,$text);
	
	    $x += $col_width;
	  } 
	
	  // Выводим заголовок
	  $text = $this->win2unicode($this->title);
	  $coord = imagettfbbox($this->font_size, 0 ,$this->font_name,$text);
	  $text_x =  30 ;//$x + ($col_width - $coord[ 2 ] - $coord[ 0 ]) /  2 ;
	  $text_y = ($this->offset_top - $coord[ 1 ] - $coord[ 7 ]) /  2 ; 
	  imagettftext($image,$this->font_size, 0 ,$text_x,$text_y,0x000000,$this->font_name,$text);
	
	  header('Content-type: image/png'); 
	  imagepng($image); 
	  imagedestroy($image);
	}
	
  function win2unicode($s)
  {
    $s = convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859- 5 
    // преобразование iso8859- 5  -> unicode:
    for ($result='', $i= 0 ; $i<strlen($s); $i++) {
      $charcode = ord($s[$i]);
      $result .= ($charcode> 175 )?"".( 1040 +($charcode- 176 )).";":$s[$i];
    }
    return $result;
  }	
}

$qr = new QR_Graph($Data, $Title);
$qr->draw();  
?>

Заранее спасибо.
...
Рейтинг: 0 / 0
26.01.2006, 20:17
    #33506059
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php)Сохранение изображения
автор imagepng($image);

imagepng($image,"filename.png");

?
...
Рейтинг: 0 / 0
26.01.2006, 20:25
    #33506074
Viktor Bartel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php)Сохранение изображения
Спасибо большое, работает, в следующий раз буду внимателней мануал по функциям читать.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php)Сохранение изображения / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]