<?php
 
 
echo 'Simple pixel vectorize';
 
require_once "../svglib/svglib.php";
 
require 'resource/function.php'; //convert color
 
 
$imagePath = 'resource' . DIRECTORY_SEPARATOR . 'axel.png';
 
$svgPath = 'output' . DIRECTORY_SEPARATOR . 'axel.svg';
 
 
$imgContent = file_get_contents( $imagePath );
 
 
$img = imagecreatefromstring( $imgContent );
 
$imageSize = getimagesize( $imagePath );
 
$imgW = $imageSize[ 0 ];
 
$imgH = $imageSize[ 1 ];
 
 
$svg = SVGDocument::getInstance();
 
$svg->setWidth( $imgW );
 
$svg->setHeight( $imgH );
 
 
for ( $x = 0; $x < $imgW; $x++ )
 
{
 
    for ( $y = 0; $y < $imgH; $y++ )
 
    {
 
        $rgb = imagecolorat( $img, $x, $y );
 
        $color = imagecolorsforindex( $img, $rgb );
 
 
        if ( $color[ 'alpha' ] < 126 )
 
        {
 
            $hex = RGBToHex( $color[ 'red' ], $color[ 'green' ], $color[ 'blue' ] );
 
            //$rect = SVGRect::getInstance( $x, $y, null, 1, 1, new SVGStyle( array( 'fill' => $hex ) ) );
 
            //$d = "m $x,$y 1,0 0,1 -1,0 z";
 
            $x1 = $x + 1;
 
            $y1 = $y + 1;
 
            $d = "M $x,$y $x,$y1 $x1,$y1 $x1,$y ";
 
 
            @$paths[ $hex ] .= $d;
 
            /* @$paths[$hex][$x . ',' . $y] = $x . ',' . $y;
 
              @$paths[$hex][$x . ',' . $y1] = $x . ',' . $y1;
 
              @$paths[$hex][$x1 . ',' . $y1] = $x1 . ',' . $y1;
 
              @$paths[$hex][$x1 . ',' . $y] = $x1 . ',' . $y; */
 
 
            //M 25,20 25,21 26,21 26,20 z
 
            //$path = SVGPath::getInstance( $d, null, new SVGStyle( array( 'fill' => $hex ) ) );
 
            //$svg->append( $path );
 
        }
 
    }
 
}
 
 
echo '<pre>';
 
foreach ( $paths as $hex => $d )
 
{
 
    //$d = implode( ' L ', $res );
 
    $path = SVGPath::getInstance( $d . ' z', null, new SVGStyle( array( 'fill' => $hex ) ) );
 
    $svg->append( $path );
 
}
 
 
$svg->asXML( $svgPath, TRUE );
 
 
echo "<img src='$imagePath'/>";
 
echo '<embed style="border:solid 1px gray;" src="' . $svgPath . '" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" /><br / >';
 
?>
 
 
 |