» »

[PHP] branje slike

[PHP] branje slike

matijaz74 ::

Pozdravljeni! Najprej bom prikazal kodo, ki sem jo pobral iz neta.
function make_thumb($src,$dest,$desired_width)
{

  /* read the source image */
  $source_image = imagecreatefromjpeg($src);
  $width = imagesx($source_image);
  $height = imagesy($source_image);
  
  /* find the "desired height" of this thumbnail, relative to the desired width  */
  $desired_height = floor($height*($desired_width/$width));
  
  /* create a new, "virtual" image */
  $virtual_image = imagecreatetruecolor($desired_width,$desired_height);
  
  /* copy source image at a resized size */
  imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
  
  /* create the physical thumbnail image to its destination */
  imagejpeg($virtual_image,$dest);
}

Problem nastane pri funkciji imagecreatefromjpeg. Kratkomalo stran se naloži do te funkcije in se ustavi. Ne javi nobene napake kratkomalo nič. V čem je problem? Hmmm ... očitno sem premalo navedel. Če sem še kaj pozabil navedeti kar vas bo zanimalo me vprašajte. Drugače pa stran deluje na Linuxu PHP verzija je 5.3.2.
Hvala za odgovor.
lp
Matijaž

matijaz74 ::

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-Type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

Ta primer sem najdel ravno na php.net spletni strani. Odkril sem da zaradi
header('Content-Type: image/jpeg');
mi javi napako Slike:{pot do slike} (prikazana je pot do php datoteke) ne morem prikazati ker vsebuje napake. Sporočilo je prikazano v obliki generirane slike. Ne razumem v čem je problem. Enostaven primer pa ne deluje. Hvala vam za odgovor.
lp
Matijaž

misek ::

PHP-ju manjka GD knjižnica. Poglej v manual za funkcijo imagecreatefromjpeg.

matijaz74 ::

misek je izjavil:

PHP-ju manjka GD knjižnica. Poglej v manual za funkcijo imagecreatefromjpeg.


Res je GD knjižnjica je manjkala. Sedaj pa je drug problem nastal.
<div>
<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;
 
// Content type
header('Content-Type: image/jpeg');
 
// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
 
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
 
// Output
imagejpeg($image_p, null, 100);
?></div>


Kot je razvidno sem dodal samo oznako
div

in mi je spet prikazalo napako v obliki slike.
Slike:{pot do slike} (prikazana je pot do php datoteke) ne morem prikazati ker vsebuje napake

Odčitno ni to lahka zadeva vidim. Hvala vam za odgovor.
lp
Matijaž

misek ::

V PHP-ju si nastavil header('Content-Type: image/jpeg'). Vendar pred tem ne smeš poslati nobenega teksta ali karkoli drugega. Sicer pa ne vem zakaj bi sploh uporabil div na tem mestu, saj ti bo PHP vrnil binarno sliko.

matijaz74 ::

misek je izjavil:

V PHP-ju si nastavil header('Content-Type: image/jpeg'). Vendar pred tem ne smeš poslati nobenega teksta ali karkoli drugega. Sicer pa ne vem zakaj bi sploh uporabil div na tem mestu, saj ti bo PHP vrnil binarno sliko.


To je res da vrne PHP binarno sliko. Želim pa to sliko malo oblikovati. Recimo: zaobliti robove, povečati border in obarvati, osenčil . Kako pa naj drugače naredim? Ali obstajajo kakšni simple primeri? Hvala!
lp
Matijaž

Zgodovina sprememb…

misek ::

Torej ti želiš nekaj takega?

dbevfat ::

matijaz: binarne slike ne moreš izpisovati kar znotraj HTML-ja. Potrebuješ php skripto, ki ti vrne samo obdelano sliko, potem pa v htmlju narediš
<img src="url-do/slika.php" />
V slika.php pa narediš samo obdelavo slike in jo izpišeš.

Za obdelave priporočam knjižnico, recimo WideImage ali Imagine. S samim GDjem boš umrl. :D
nvr2fat

matijaz74 ::

misek je izjavil:

Torej ti želiš nekaj takega?


Samo to? Pismo ... :) Hvala!

dbevfat : hehehehehe hvala za nasvet. :) Sem opazil, da je malo drugače to narejeno. Jaz sem pa misli da je tako enostavno ... no sej je :) ... ko veš :D Hvala za nasvet.
lp
Matijaž

Zgodovina sprememb…

matijaz74 ::

Še eno vprašanje.

<div style="width:300px; height:150px; background-image:url('image.php'); background-postion:right; border-radius:10px; box-shadow:1px 1px 4px #666666; border:#999999 1px solid;"></div>


Želim regulirati pozicijo binarne slike v background-u.Vendar sem opazil, da se ne da. Ali je sploh mogoče? Hvala!
lp
Matijaž

dbevfat ::

Typo imaš: background-postion -> background-position
nvr2fat

matijaz74 ::

dbevfat je izjavil:

Typo imaš: background-postion -> background-position

Hvala nisem opazil napake. Sedaj deluje kot jaz želim.
lp
Matijaž


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
!

Vse, kar ste si želeli vprašati o CSS, pa si niste upali. (strani: 1 2 3 423 24 25 26 )

Oddelek: Izdelava spletišč
1298345963 (5100) sunniegoldie
»

jquery in div-i (strani: 1 2 )

Oddelek: Izdelava spletišč
8711268 (10006) lisjak
»

Wampserver in Firefox

Oddelek: Izdelava spletišč
61845 (1725) jonystar
»

[CSS]Pozicioniranje footer diva

Oddelek: Izdelava spletišč
62454 (2401) amaze646
»

image/png .......(prikaz!!)?

Oddelek: Izdelava spletišč
181151 (1042) Ziga Dolhar

Več podobnih tem