728x90

다음은 Code 39 형식의 바코드를 생성하는 예제입니다.
Code 39는 간단한 1D 바코드 형식으로, 숫자와 문자를 모두 인코딩할 수 있습니다.

Code 39 바코드 생성 예제

<?php
// Code 39 바코드 패턴 정의
$code39 = array(
    '0' => '101001101101',
    '1' => '110100101011',
    '2' => '101100101011',
    '3' => '110110010101',
    '4' => '101001101011',
    '5' => '110100110101',
    '6' => '101100110101',
    '7' => '101001011011',
    '8' => '110100101101',
    '9' => '101100101101',
    'A' => '110101001011',
    'B' => '101101001011',
    'C' => '110110100101',
    'D' => '101011001011',
    'E' => '110101100101',
    'F' => '101101100101',
    'G' => '101010011011',
    'H' => '110101001101',
    'I' => '101101001101',
    'J' => '101011001101',
    'K' => '110101010011',
    'L' => '101101010011',
    'M' => '110110101001',
    'N' => '101011010011',
    'O' => '110101101001',
    'P' => '101101101001',
    'Q' => '101010110011',
    'R' => '110101011001',
    'S' => '101101011001',
    'T' => '101011011001',
    'U' => '110010101011',
    'V' => '100110101011',
    'W' => '110011010101',
    'X' => '100101101011',
    'Y' => '110010110101',
    'Z' => '100110110101',
    '-' => '100101011011',
    '.' => '110010101101',
    ' ' => '100110101101',
    '$' => '100100100101',
    '/' => '100100101001',
    '+' => '100101001001',
    '%' => '101001001001',
    '*' => '100101101101'
);

// 바코드로 변환할 문자열
$barcodeString = '*HELLO*';

// 이미지 크기 설정
$width = strlen($barcodeString) * 12 * 2; // 각 문자당 12픽셀, 2배 확대
$height = 60;

// 이미지 생성
$image = imagecreate($width, $height);

// 색상 설정
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);

// 배경 흰색으로 채우기
imagefill($image, 0, 0, $white);

// 바코드 그리기
$x = 10; // 시작 x 좌표
foreach (str_split($barcodeString) as $char) {
    $pattern = $code39[$char];
    foreach (str_split($pattern) as $bit) {
        $color = $bit == '1' ? $black : $white;
        imagefilledrectangle($image, $x, 10, $x + 1, $height - 10, $color);
        $x += 2;
    }
    // 문자 간 간격
    $x += 2;
}

// 이미지 출력
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

이 코드는 *HELLO*라는 문자열을 Code 39 바코드로 변환하여 이미지를 생성합니다. 바코드는 각 문자를 12픽셀 폭의 패턴으로 표현하고, 문자의 각 비트를 흑백으로 그립니다. 바코드의 시작과 끝에는 '*' 문자를 추가하여 바코드의 시작과 끝을 나타냅니다.

설명

  1. Code 39 패턴 정의: 각 문자에 대한 패턴을 정의합니다. Code 39는 각 문자를 12비트로 표현합니다.
  2. 바코드 문자열 설정: 바코드로 변환할 문자열을 정의합니다. Code 39는 시작과 끝에 '*' 문자를 사용합니다.
  3. 이미지 크기 설정: 바코드 문자열의 길이에 따라 이미지의 너비를 설정합니다. 각 문자는 12픽셀 너비를 가지며, 이 예제에서는 2배 확대하여 각 비트를 2픽셀로 그립니다.
  4. 이미지 생성 및 색상 설정: 이미지를 생성하고 흰색과 검은색을 정의합니다.
  5. 바코드 그리기: 각 문자의 패턴을 읽고, 비트에 따라 흑백 선을 그립니다.
  6. 이미지 출력: 생성된 이미지를 PNG 형식으로 출력합니다.
728x90
반응형

+ Recent posts