search for in the  
<imagecreatefrompngimagecreatefromwbmp>
Last updated: Thu, 19 May 2005

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Create a new image from the image stream in the string

Description

resource imagecreatefromstring ( string image )

imagecreatefromstring() returns an image identifier representing the image obtained from the given string. These types will be automatically detected if your build of PHP supports them: JPEG, PNG, GIF, WBMP, and GD2.

Return Values

An image resource will be returned on success. FALSE is returned if the image type is unsupported, the data is not in a recognised format, or the image is corrupt and cannot be loaded.

Examples

Example 1. imagecreatefromstring() example

<?php
$data
= 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
      
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
      
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
      
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if (
$im !== false) {
  
header('Content-Type: image/png');
  
imagepng($im);
}
else {
   echo
'An error occured.';
}
?>



User Contributed Notes
imagecreatefromstring
not given
03-Aug-2003 04:14
A note to the previous question (if you still don't know it :))...

GIF's are 256 colors (or 8 bit), and the resample function needs true color I guess... that's why it works with JPG's and not with GIF's.

Next thing... you take a string, write it to file, open the file (imagecreatefromgif), and delete the file again.

if you do imagecreatefromstring($string) you can skip the temporary file part.
shiehj at yahoo dot com
11-Apr-2003 11:44
Here is the code I did to create a thumbnail image from the database blob field. The trick is to use "imagecreatefromstring()" to create an image file.

Jack Shieh

<?php
require("dbconfig.inc");

$id = $_GET['id'];

if(
$id) {

  
$link = @mysql_connect($host, $user, $password) or die("Could not connect: " . mysql_error());
   @
mysql_select_db($dbname, $link);

  
$query = "select filetype, image from pictures where id = $id";
  
$result = @mysql_query($query);

  
$data = @mysql_result($result,0,"image");
  
$type = @mysql_result($result,0,"filetype");
  
  
Header( "Content-type: $type");   
  
  
$size = 150// new image width
  
$src = imagecreatefromstring($data);
  
$width = imagesx($src);
  
$height = imagesy($src);
  
$aspect_ratio = $height/$width;

   if (
$width <= $size) {
    
$new_w = $width;
    
$new_h = $height;
   } else {
    
$new_w = $size;
    
$new_h = abs($new_w * $aspect_ratio);
   }

  
$img = imagecreatetruecolor($new_w,$new_h);
  
imagecopyresized($img,$src,0,0,0,0,$new_w,$new_h,$width,$height);
 
  
// determine image type and send it to the client   
  
if ($type == "image/pjpeg") {   
    
imagejpeg($img);
   } else if (
$type == "image/x-png") {
    
imagepng($img);
   } else if (
$type == "image/gif") {
    
imagegif($img);
   }
  
imagedestroy($img);
  
mysql_close($link);
};
?>
adrian_schmidt at yahoo dot com
05-Mar-2003 06:04
I'm trying to get the imagecreatefromstring to work with GIFs. Of course, it won't.
I've read the tips but can't get them to work either.
The following is what I tried, based on above tips:

---

   header('Content-Type: image/gif');
   header('Content-Disposition: inline; filename=file.gif');

   $temp = tmpfile();
   fwrite($temp, $line['image']);
   $src_img = imagecreatefromgif($temp);
   fclose($temp); // this removes the file
   $dst_img = imagecreatetruecolor(100, 100);
   imagecopyresampled($dst_img, $src_img, 0,0,0,0, 100,100, imagesx($src_img), imagesy($src_img));
  
   imagegif($dst_img);

---

where $line['image'] is the gif as taken from my MySQL database...

If anyone that has been able to make something like this work could give me a working piece of code I'd be really greatful!

I would be great if the tempfile could be excluded too...

Below is a working piece of code for jpeg:

---

   header('Content-Type: image/jpeg');
   header('Content-Disposition: inline; filename=file.jpg');
  
   $src_img = imagecreatefromstring($line['image']);
   $dst_img = imagecreatetruecolor(100, 100);
   imagecopyresampled($dst_img, $src_img, 0,0,0,0, 100,100, imagesx($src_img), imagesy($src_img));
  
   imagejpeg($dst_img);

<imagecreatefrompngimagecreatefromwbmp>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT