2014-09-29 6 views
0

배 바코드 2를 사용하여 gif 바코드를 생성 중입니다.배 바코드 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; 

는 내가 뭘 원하는 서버의 하드 디스크에 직접 이미지를 저장하는 대신 사용자에게 표시합니다.

나는 PHP의 imagegif를 사용하려했지만 $ image가 문자열 형식이라는 사실을 좋아하지 않는다.

모든 조언을 환영합니다. 언제나처럼 고마워

답변

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

imagegif 대신 imagepng를 사용해보십시오. – asbb

+0

미안하지만, 사실은 imagepng를 사용해 본 적이 있지만 같은 오류가 발생했습니다. 지금 imagepng 오류를 게시합니다. – Smudger