text2png cize .nfo2pic

Programovacie jazyky, rady, poradňa...
ferks
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 105
Registrovaný: 03 okt 2005, 18:40
Bydlisko: Poprad
Kontaktovať používateľa:

text2png cize .nfo2pic

Príspevok od používateľa ferks »

v html a php nie som velmi zbehly takze tu je moj problem:
Potrubujem:
1. Poslat subor na server a ulozit ho pod nahodnym menom
2. Otvorit zaslany subor a nasledne vytvorit obrazok
3. Vytvoreny obrazok zobrazit/popripade stiahnut
4. Nahrany subor vymazat

-----------

1. na http://www.ferks.sk/nfo2pic/ mam formular, ktory mi posle subor na subor up.php

Kód: Vybrať všetko

<HTML>
<BODY>
  <?
    $fp1=fopen($subor,"r");  //$subor je subor z formulara
    $sub = rand(5000,31999); // nahodny nazov suboru kde to ulozim
    $fp2=fopen($sub,"w+");
      while(!feof($fp1))
        {
          $buffer=fread($fp1,1024);
          fwrite($fp2,$buffer);
        }
   fclose($fp1);
   fclose($fp2);
  ?>
</BODY>
</HTML>
Subor mame na serveri a teraz z neho spravime obrazok:
robi sa to takto:
vypis suboru "nfo2png.php":

Kód: Vybrať všetko

<?php
function buildNFO($nfotext, $footer = "", $fg = "000000") {
  // Write Headers for PNG
  header("Content-Type: image/png");
  header("Content-Disposition: inline; filename=\"nfo2png.sf.net.png\"");
  
  if(!strlen($nfotext)) $nfotext = "Empty String submitted.";

  $nfo = explode("\n", $nfotext);
  
  // Load the Bitmap-Font
  $fnt = imageloadfont("nfo2pngfont");
  $fntw = imagefontwidth($fnt);
  $fnth = imagefontheight($fnt);
             
  // Check for empty lines
  $fillers = strlen($nfo[1])+strlen($nfo[3])+strlen($nfo[5])+strlen($nfo[7])<9?1:0;
  
  $nxo = array();
  $xmax = 0;
  
  // Reformat each line
  foreach($nfo as $key=>$line){
    $line = chop($line);
    if($xmax < strlen($line)) $xmax = strlen($line);
    if($fillers and ($key & 1)) continue;
    array_push($nxo,$line);
  }
  
  // Show footer
  if(strlen($footer)) {
    array_push($nxo,"");
    $fill = str_repeat(" ",($xmax - strlen($footer)>>1));
    array_push($nxo,$fill.$footer);
  }
  
  // Linecount
  $ymax = count($nxo);
  
  // Set foreground color
  $color = array(0, 0, 0);
  if(strlen($fg) == 6) {
    $color[0] = intval(substr($fg,0,2), 16);
    $color[1] = intval(substr($fg,2,2), 16);
    $color[2] = intval(substr($fg,4,2), 16);
  }
                      
  // Render NFO
    $im = ImageCreate($xmax*$fntw,$ymax*$fnth);
  ImageInterlace($im,1); 
  $background_color = ImageColorTransparent($im, ImageColorAllocate ($im, 255, 255, 255));
  $text_color = ImageColorAllocate ($im, $color[0], $color[1], $color[2]);
  
  foreach($nxo as $y=>$line)
    ImageString($im, $fnt, 0, $y*$fnth, $line, $text_color);
  ImagePNG($im);

}
?>
nasledne zobrazenie sa robi takto:

Kód: Vybrať všetko

<?php
  if($_SERVER["QUERY_STRING"]) {
    include("nfo2png.php");
    $f = file("dmd-fatftd.nfo");
    $f = implode("",$f);
    buildNFO($f, "", "000000");
  }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>NFO-Test</title>
</head>
<body bgcolor="white">
<img src="nfotest.php?1">
</body>
</html>
no a ja to neveim dat dokopy aby mi to nahralo subor, spravilo obrazok a potom zobrazilo

cize to potrebujem dat nejako dokopy, alebo do jedneho .php

alebo sa sa vobec to, aby zdroj obrazku bol vysledok funkcie?
nieco ako toto:

Kód: Vybrať všetko

<img src=buildNFO($f, "", "000000")>

v prilohe su vsetky potrebne subory aby sa to dalo vyskusat
Prílohy
nfo2png.rar
Cely zdroj aj s formularom
(6.2 KiB) 92 stiahnutí
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

pozrel som to, upravil a sfunkcnil.
uprav si to na svoj vzor.

good luck.
Prílohy
ferks.zip
kompetka
(4.54 KiB) 78 stiahnutí
ferks
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 105
Registrovaný: 03 okt 2005, 18:40
Bydlisko: Poprad
Kontaktovať používateľa:

Príspevok od používateľa ferks »

velmi pekne dakujem, uz som to sfunkcnil:
http://www.ferks.sk/nfo2pic/

Karmu som ti uz poslal :wink:
marek56
Novice
Novice
Príspevky: 5
Registrovaný: 14 mar 2009, 17:12

Príspevok od používateľa marek56 »

ahoj chcel by som vediet ze ako si spravil http://www.ferks.sk/nfo2pic/ teda skor to ako si spravil to ze sa ti meni ten font teda velkost ? a farbu pozadnia a textu DAKUJEM :)
Napísať odpoveď