1<?php
2
3require_once(HTML2PS_DIR.'ps.image.encoder.stream.inc.php');
4
5class PSL2ImageEncoderStream extends PSImageEncoderStream {
6  function by_lines($image, &$size_x, &$size_y) {
7    $lines = array();
8
9    $size_x = imagesx($image->get_handle());
10    $size_y = imagesy($image->get_handle());
11
12    $dest_img    = imagecreatetruecolor($size_x, $size_y);
13    imagecopymerge($dest_img, $image->get_handle(), 0, 0, 0, 0, $size_x, $size_y, 100);
14
15    // initialize line length counter
16    $ctr = 0;
17
18    for ($y = 0; $y < $size_y; $y++) {
19      $line = "";
20
21      for ($x = 0; $x < $size_x; $x++) {
22        // Save image pixel to the stream data
23        $rgb = ImageColorAt($dest_img, $x, $y);
24        $r = ($rgb >> 16) & 0xFF;
25        $g = ($rgb >> 8) & 0xFF;
26        $b = $rgb & 0xFF;
27        $line .= sprintf("%02X%02X%02X",min(max($r,0),255),min(max($g,0),255),min(max($b,0),255));
28
29        // Increate the line length counter; check if stream line needs to be terminated
30        $ctr += 6;
31        if ($ctr > MAX_LINE_LENGTH) {
32          $line .= "\n";
33          $ctr = 0;
34        }
35      };
36
37      $lines[] = $line;
38    };
39
40    return $lines;
41  }
42}
43?>