Login   Register  
PHP Classes
elePHPant
Icontem

File: example/vectorize.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Eduardo "Trial Force" Bonfandini  >  phpSVG  >  example/vectorize.php  >  Download  
File: example/vectorize.php
Role: Example script
Content type: text/plain
Description: Example script
Class: phpSVG
Create and edit vectorial graphics in SVG files
Author: By
Last change:
Date: 7 months ago
Size: 2,055 bytes
 

Contents

Class file image Download
<?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];
$imgH $imageSize];

$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$svgPathTRUE );

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 / >';
?>