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

Подскажите пожалуйста как можно сохранить создное изображение в определеный файл? Я создаю изображение в 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
(php)Сохранение изображения
    #33506059
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор imagepng($image);

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

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


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