2014-09-29 5 views
0

Я генерирую штрих-код gif с помощью Pear Barcode2.Pear Barcode 2 - сохранить на диск

сейчас работает, и я вижу изображение как файл изображения gif. поэтому страница не отображается в форме HTML, а как отдельное изображение.

мой код:

$small_graph_height = 55; 
     $small_graph_width = 1.2; 
     $large_graph_height = 55; 
     $large_graph_width = 1.14; 
     $type = "gif"; 
     $code = "code39"; 
     $to_browser = TRUE; 

      include_once "application/libraries/Image/Barcode2.php"; 

     $ticketno='TDN4993'; 
       $productserial_str = empty($productserial_str) ? ucfirst($ticketno) : $productserial_str; 
       $productserial_type = $code; 
       $productserial_imgtype = $type; 
       $productserial_bSendToBrowser = $to_browser; 
       $productserial_height = $large_graph_height; 
       $productserial_width = $large_graph_width; 

       $productserial_img = Image_Barcode2::draw($productserial_str, $productserial_type, $productserial_imgtype, $productserial_bSendToBrowser, $productserial_height, $productserial_width); 

       ob_start(); 
       imagepng($productserial_img); 
       $productserial_imgBase64 = base64_encode(ob_get_contents()); 
       ob_end_clean(); 

       imagedestroy($productserial_img); 

       $image= '<img class="ProductSerial" src="data:image/' . $productserial_imgtype . ';base64,' . $productserial_imgBase64 . '">'; 
      echo $image; 

, что я хочу сделать, это сохранить это изображение непосредственно на жесткий диск сервера, а не отображать его пользователю.

Я попытался использовать imagegif для PHP, но мне не нравится тот факт, что $ image находится в строковом формате.

Любые советы приветствуются. Thanks as always

ответ

1

Если вам нужно сохранить изображение на диске, вам необходимо использовать функцию imgpng().

Пример, который я получил от here.

imagepng($bc->draw($data, $type, 'png', false),'ur_image_location'); 
+0

Спасибо, я видел эту статью, но не знаете, как изменить существующий '$ productserial_img = Image_Barcode2 :: ничья ($ productserial_str, $ productserial_type, $ productserial_imgtype, $ productserial_bSendToBrowser, $ productserial_height, $ productserial_width) ; 'к вашему ответу – Smudger

0
$small_graph_height = 55; 
$small_graph_width = 1.2; 
$large_graph_height = 55; 
$large_graph_width = 1.14; 
$type = "gif"; 
$code = "code39"; 
$to_browser = TRUE; 

include_once "application/libraries/Image/Barcode2.php"; 

$ticketno='TDN4993'; 
$productserial_str = empty($productserial_str) ? ucfirst($ticketno) : $productserial_str; 
$productserial_type = $code; 
$productserial_imgtype = $type; 
$productserial_bSendToBrowser = $to_browser; 
$productserial_height = $large_graph_height; 
$productserial_width = $large_graph_width; 

$productserial_img = Image_Barcode2::draw($productserial_str, $productserial_type, $productserial_imgtype, $productserial_bSendToBrowser, $productserial_height, $productserial_width); 

ob_start(); 
imagepng($productserial_img); 
$png = ob_get_contents(); 
ob_end_clean(); 

file_put_contents('barcode.png', $png); 

echo 'image saved to file barcode.png'; 
+0

Спасибо asbb, файл создан правильно, и файл отображается правильно при вызове php-страницы. проблема заключается в том, что изображение не будет отображаться с диска. при открытии изображения в блокноте ошибка: '

A PHP Error was encountered

Severity: Warning

Message: imagegif(): 56 is not a valid Image resource

Filename: controllers/capture.php

Line Number: 2873

' – Smudger

+0

Попробуйте использовать imagepng вместо imagegif. – asbb

+0

Извините, я сделал True imagepng, но ту же ошибку, поэтому попробовал imagegif. опубликует ошибку imagepng. – Smudger