[Clipart] [Open Clip Art Library] No pictures?

Valessio S Brito valessio at colivre.coop.br
Sat Aug 9 08:30:40 PDT 2008


Solution Inkscape+PHP in gallery InkscapeBrasil.org..
view code:

------- index.php -------------
<?
if ( $argc > 0 ) {
  $_GET = array (
    debug => 1,
    svg => $argv[1]
  );
}

if ( $_GET['rm-cache'] == 1 ) {
  exec( "rm cache/*" );
}

exec( "export LESSCLOSE='/usr/bin/lesspipe %s %s'" );
if ( $_GET['debug'] ) {
  echo '<pre>PWD: '.exec("pwd")."\nENV: ".exec("env")."\n";
} else {
  header('Content-Type: image/png');
}

$svgURL = $_GET['svg'];

if ( $_GET['debug'] ) {
  echo "SVG-URL: $svgURL\n";
}

if ( ereg ('^http://', $svgURL) ) {
  $er = '[^-.a-zA-Z0-9]';
  $svg = 'cache/'. ereg_replace( $er, '_',  $svgURL ). '.svg';
  $png = 'cache/'. ereg_replace( $er, '_',  $svgURL ). '.png';
} else {
  if ( $_GET['debug'] ) {
    echo "URL Invalida\n\n";
  }
  readfile('url-invalida.png');
  exit;
}

if ( $_GET['debug'] ) {
  echo "SVG: $svg\nPNG: $png\n";
}

if ( file_exists($png) ) {
  if ( $_GET['debug'] ) {
    echo "PNG em Cache\n\n";
  }
  readfile($png);
}
else {
  /*
  // Get the SVG using PHP:
  // ...but is not workingo for some urls... :-(
  // php_network_getaddresses: getaddrinfo failed: Name or service not known
  if ( $_GET['debug'] ) { echo "Download SVG...\n"; }
  if ( @fopen($svgURL, 'r') ) {
    if ( ! $hSVG = fopen($svg, 'w') ) {
      if ( $_GET['debug'] ) { echo "Can't to create files\n\n"; }
      readfile('erro.png');
      exit;
    }
    if ( !fwrite( $hSVG, file_get_contents($svgURL) ) ) {
      if ( $_GET['debug'] ) { echo "Can't to write svg file\n\n"; }
      readfile('erro.png');
      exit;
    }
    fclose($hSVG);
  }
  else {
    if ( $_GET['debug'] ) { echo "Provavel 404\n\n"; }
    print readfile('url-invalida.png');
    exit;
  }
  */
  // Geting SVG with Wget:
  $saida0 = exec( "wget -q --no-check-certificate " .
                  escapeshellarg($svgURL) .
		  " -O $svg || echo ERROR" );
  if ( $_GET['debug'] ) {
    echo "SVG File Info: ". exec( "ls -lh ".$svg ) ."\n";
  }
  if ( $saida0 == 'ERROR' ) {
    if ( $_GET['debug'] ) { echo "Provavel 404\n\n"; }
    print readfile('url-invalida.png');
  }
  // Generating PNG:
  $imgSize = 80;
  $saida1 = exec("inkscape -z $svg -w ".($imgSize*2.3)." -e $png 2>&1
|| echo ERROR when try export PNG");
  if ( $_GET['debug'] ) {
    echo "PNG File Info: ". exec( "ls -lh ".$png ) ."\n";
  }
  $saida2 = exec("convert $png -trim $png || echo ERROR when try trim");
  $w = exec("identify -format %w $png");
  $h = exec("identify -format %h $png");
  if ( $w > $h ) {
    $bigger = $w;
  } else {
    $bigger = $h;
  }
  $nW = round( ($w/$bigger) * $imgSize );
  $nH = round( ($h/$bigger) * $imgSize );
  if ( $_GET['debug'] ) {
    echo "\nOriginal PNG size: ${w}x${h}   Resize to: ${nW}x${nH}\n";
  }
  $saida2 = exec("convert -size ${imgSize}x${imgSize} xc:transparent
-gravity Center -draw 'image Over 0,0 $nW,$nH $png' $png 2>&1");
  # unlink( $svg ); // delete file svg
  if ( $_GET['debug'] ) {
    echo "\nSaida Inkscape: \"$saida1\"\n\nSaida ImageMagick: \"$saida2\"\n";
  }
  if ( $saida2 != '' ) {
    if ( $_GET['debug'] ) {
      echo "Erro...\n\n";
    }
    readfile('erro.png');
  } else {
    if ( $_GET['debug'] ) {
      echo "Gerado!\n\n";
    }
    readfile($png);
  }
}

if ( $_GET['debug'] ) {
  echo '</pre>';
  phpinfo();
}
?>
---------------end svg.php---------------



.ValessioBrito


2008/8/7 Jon Phillips <jon at rejon.org>:
> Hi Val, yes, we don't have thumbnails. If you know php, would be great
> to get assistance.
>
> On Sat, 2008-02-02 at 14:37 +0000, noreply at openclipart.org wrote:
>> Hi, I have only just registered with you and many images can not be seen just a little box with a red cross in the cenrte?
>> Val
>> _______________________________________________
>> clipart mailing list
>> clipart at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/clipart
> --
> Jon Phillips
> San Francisco, CA + Guangzhou + Beijing
> GLOBAL +1.415.830.3884
> CHINA +86.1.360.282.8624
> jon at rejon.org
> http://www.rejon.org
> IM/skype: kidproto
> Jabber: rejon at gristle.org
> IRC: rejon at irc.freenode.net
>
> _______________________________________________
> clipart mailing list
> clipart at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/clipart
>



-- 
.ValessioBrito - http://valessiobrito.info


More information about the clipart mailing list