Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Resize slike iz jedne u drugu promenljivu

[es] :: PHP :: Resize slike iz jedne u drugu promenljivu

[ Pregleda: 1645 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jorgovan88
Jorgovan88

Član broj: 190307
Poruke: 480



+13 Profil

icon Resize slike iz jedne u drugu promenljivu26.07.2011. u 01:59 - pre 155 meseci
Znaci imam jednu promenljivu koja je ustvari slika

ja mislim da se to kreira ovako

$img = imagecreatefromjpeg( $srcFile );

e sad hteo bih da tu sliku resizujem da joj sirina bude 550npr ali da se odnos strana ne izgubi tj da ostane isti.
Posle toga dobijenu sliku treba ponovo upisati u neku promenljivu da bi ostatak koda mogao da odradi ubacivanje texta i ostalo.
Pravim sajt za pravljenje demotivacija-vukajlija postera.

Nasao sam neki kod od nekih rusa - radi sve ali ne radi resize pa sam hteo da pomocu datalife engine-a i tog koda napravim ceo sajt koji ce slagati te postere i gde ce korisnici moci da ih generisu i postavljaju

evo ga kod (znaci radi sve samo ne smanjuje slike ako su ogromne)

Code:
<?php

  if (!defined("DATALIFEENGINE"))
  {
    die("Hacking Attemp!");
  }
  
    function win_to_utf($s) 

for($i=0, $m=strlen($s); $i<$m; $i++) 

$c=ord($s[$i]); 
if ($c<=127) 
{$t.=chr($c); continue; } 
if ($c>=192 && $c<=207) 
{$t.=chr(208).chr($c-48); continue; } 
if ($c>=208 && $c<=239) 
{$t.=chr(208).chr($c-48); continue; } 
if ($c>=240 && $c<=255) 
{$t.=chr(209).chr($c-112); continue; } 
if ($c==184) { $t.=chr(209).chr(209); 
continue; }; 
if ($c==168) { $t.=chr(208).chr(129); 
continue; }; 

return $t; 
}
  $dirdem=ROOT_DIR.'/uploads/demotivation/';
 $tpl->load_template('demgen.tpl');
if (isset($_FILES["file"])){
$myfile = $_FILES["file"]["tmp_name"];
$font = str_replace ( "\\", "/", getcwd () )."/arial.ttf";
$font1 = $font;
$headerSize = 33.5;
$textSize = 24.0;
 $imageMargin = 20;
  $spacing = 16;
  $borderPad = 16;
$srcFile = $myfile;

 $header = win_to_utf( $_POST["head"]);
  $text = win_to_utf($_POST["text"]);
 if( !file_exists( $srcFile ) ){
    echo "picture file not found\n";
    exit;
  }
  $img = imagecreatefromjpeg( $srcFile );
  list($w, $h) = getimagesize( $srcFile );
 
  $ha1 = imagettfbbox($headerSize, 0, $font1, $header );
  $ha2 = imagettfbbox($textSize, 0,$font, $text );
 
  $wt1 = $ha1[2]-$ha1[0];
  $ht1 = $ha1[1]-$ha1[7];
  $wt2 = $ha2[2]-$ha2[0];
  $ht2 = $ha2[1]-$ha2[7];
 
  $fw = $w + 8 + $imageMargin * 2 + $borderPad * 2;
  $fh = $h + 8 + $imageMargin * 2 + $borderPad * 2 + $ht1 + $ht2 + $spacing * 3;
  $fon = imagecreatetruecolor($fw, $fh);
 
  $white = imagecolorallocate( $fon, 255, 255, 255 );
  $black = imagecolorallocate( $fon,   0,   0,   0 );
  imagefill( $fon, 0, 0, $black );
 
  imagecopy( $fon, $img, $imageMargin + $borderPad + 4, $imageMargin + $borderPad + 4, 0, 0, $w, $h );
 
  imagerectangle( $fon, $imageMargin + $borderPad + 4 - 3, $imageMargin + $borderPad + 4 - 3,
           $imageMargin + $borderPad + $w + 4 + 2, $imageMargin + $borderPad + $h + 4 + 2, $white );
  imagerectangle( $fon, $imageMargin + $borderPad + 4 - 4, $imageMargin + $borderPad + 4 - 4,
           $imageMargin + $borderPad + $w + 4 + 3, $imageMargin + $borderPad + $h + 4 + 3, $white );
 
  imagettftext( $fon, $headerSize, 0,
    ($fw - $wt1) / 2, $imageMargin + $borderPad*2 + 8 + $h + $ht1 + $spacing,
    $white, $font1, $header );
 
  imagettftext( $fon, $textSize, 0,
    ($fw - $wt2) / 2, $imageMargin + $borderPad*2 + 8 + $h + $ht1 + $ht2 + $spacing*2,
    $white, $font, $text );
 $ts=$dirdem.time();
 $ts1='/uploads/demotivation/'.time();
  imagejpeg( $fon, $ts."_demotiv.jpg", 98 );
  imagecolordeallocate( $fon, $black );
  imagecolordeallocate( $fon, $white );
  imagedestroy( $fon );
 $output=$ts1."_demotiv.jpg";
 $wdr= <<<HTML
<center>
     <form enctype="multipart/form-data">
       <tr><td width="120" height="30"><span style="font-size: xx-small;">» Ïðÿìàÿ ññûëêà:</span></td><td><input type="text" name="head" value="http://{$_SERVER['HTTP_HOST']}{$output}" style="border:1px solid #ccc;height:16px;width:300px;padding-left:5px;"></td></tr>
    <tr><td width="120" height="40"><span style="font-size: xx-small;">» Êîä äëÿ ôîðóìà:</span></td><td><input type="text" name="head"  value="[img]http://{$_SERVER['HTTP_HOST']}{$output}[/img]" style="border:1px solid #ccc;height:16px;width:300px;padding-left:5px;"></td></tr> 
    <tr><td width="120" height="30"><span style="font-size: xx-small;">» HTML-êîä:</span></td><td><input type="text" name="head" value="&lt;img src=&quot;http://{$_SERVER['HTTP_HOST']}{$output}&quot;&gt;" style="border:1px solid #ccc;height:16px;width:300px;padding-left:5px;"></td></tr> 
</form>
</center>
HTML;
} else {
$wdr = <<<HTML
<center>
     <form  method="post" enctype="multipart/form-data">
<tr><td width="120" height="40"><span style="font-size: xx-small;">» <b>Øàã 1:</b> Èçîáðàæåíèå:</span></td><td><input type="file" name="file"></td></tr>
<tr><td width="120" height="30"><span style="font-size: xx-small;">» <b>Øàã 2:</b> Íàäïèñü ââåðõó:</span></td><td><input type="text" value="Ââåäèòå íàäïèñü..." onblur="if(this.value=='') this.value='Ââåäèòå íàäïèñü...';" onfocus="if(this.value=='Ââåäèòå íàäïèñü...') this.value='';" name="head" style="border:1px solid #ccc;height:16px;width:165px;padding-left:5px;"></td></tr>
<tr><td width="120" height="30"><span style="font-size: xx-small;">» <b>Øàã 3:</b> Íàäïèñü âíèçó:</span></td><td><input type="text" value="Ââåäèòå íàäïèñü..." onblur="if(this.value=='') this.value='Ââåäèòå íàäïèñü...';" onfocus="if(this.value=='Ââåäèòå íàäïèñü...') this.value='';" name="text" style="border:1px solid #ccc;height:16px;width:165px;padding-left:5px;" value=""></td></tr>
</table><br>
<center><input type="submit" name="submit" value="Ñîçäàòü" style="border:1px solid #ccc;height:22px;width:200px;padding-left:5px;"></center>
</form>
</center>
HTML;

}
$tpl->set('{cnt}', $wdr);

    $tpl->compile('content');
    $tpl->clear();
?>


malo ima nekih hijeroglifa ali to je zbog ruske cirilice.

Ako neko moze da pomogna... Hvala :)
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Resize slike iz jedne u drugu promenljivu26.07.2011. u 09:34 - pre 155 meseci
Kod ti je jako lose formatiran, i tesko se moze zakljuciti sta radi bez da ga desifrujes od pocetka do kraja.
Probaj malo preglednije da pises. Neki komentar nebi bio los.

Sto se tice resize mogucnosti gd-a pogledaj funkciju imagecopyresampled http://php.net/manual/en/function.imagecopyresampled.php
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Jorgovan88
Jorgovan88

Član broj: 190307
Poruke: 480



+13 Profil

icon Re: Resize slike iz jedne u drugu promenljivu26.07.2011. u 13:30 - pre 155 meseci
Code:
$dirdem=ROOT_DIR.'/uploads/demotivation/';



ovde se slike sacuvavaju

Code:
$myfile = $_FILES["file"]["tmp_name"];


na ovaj nacin iz forme slika prelazi u promenljivu
e sad ja kontam da bi ovde moglo nesto da se uradi u smislu da ide neki kod koji ce vec tu da resize-uje i onda opet da se napise

$myfile = $novaslika;

Cini mi se da ne bi trebalo da bude tesko ali nikad nisam radio sa obradom slika u php-u
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.static.stelkom.net.



+18 Profil

icon Re: Resize slike iz jedne u drugu promenljivu27.07.2011. u 07:42 - pre 155 meseci
Probaj dodati ovaj kod:

Code (php):

  $resW = 500;// nova sirina
  $resH = 500; // nova visina
  if( !imagecopyresized($img, $srcFile, 0, 0, 0, 0, $resW, $resH, $w, $h))
  {
     die("Image can't be resizes');
  }
 
  $w = $resW;
  $h = $resH;


ispod ovog:

Code (php):

  $img = imagecreatefromjpeg( $srcFile );
  list($w, $h) = getimagesize( $srcFile );
 


Znaci u $resW i $resH upisi svoje vrijednosti na koje zelis da se promjeni slika.
 
Odgovor na temu

Jorgovan88
Jorgovan88

Član broj: 190307
Poruke: 480



+13 Profil

icon Re: Resize slike iz jedne u drugu promenljivu27.07.2011. u 18:24 - pre 155 meseci
Odradio sam tako sto - nasao sam neki kod koji resizuje sliku u jedan folder a onda drugi deo koda mi ucita sliku sa te lokacije i onda kada se obrada slike zavrsi ide

unlink($slika)

Tako da namestio sam da se slika prvo snimi pa onda obradi - krajna slika ide u 1 folder a ova prva se brse :)

Hvala u svakom slucaju
 
Odgovor na temu

[es] :: PHP :: Resize slike iz jedne u drugu promenljivu

[ Pregleda: 1645 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.