- Функции GD и функции для работы с изображениями
- How to Display Image in PHP from Folder/Directory
- Display Image in Php from Folder
- How to Display Image from Database in Php
- Image is not Displaying in Php
- Conclusion
- Output or Display an Image in the Browser from PHP
- Images in PHP
- Outputting/Displaying an Image in PHP without Saving it
Функции GD и функции для работы с изображениями
The image sharpen function (by Alex R. Austin) provided below seems to be very resource hungry and I couldn’t make it work on two different servers — trying to sharpen a 413 x 413 image I ended up with «Fatal error: Allowed memory size of 8388608 bytes exhausted» or «Internal Server Error» or the script terminated without notice. Because I had no priviliges to change the default memory limit on these servers I started looking for other sharpen functions. I have come across a php Unsharp Mask function which works like a charm on both of the servers I dealt with. It can be found at http://vikjavev.no/hovudsida/umtestside.php.
Representation decimal of a color in hexadecimal for use on functions of library GD.
// Representation hexadecimal
$var = ‘#FFFFFF’ ;
function getRgbFromGd ( $color_hex )
return array_map ( ‘hexdec’ , explode ( ‘|’ , wordwrap ( substr ( $color_hex , 1 ), 2 , ‘|’ , 1 )));
print_r ( getRgbFromGd ( $var ));
// Output: Array ( [0] => 255 [1] => 255 [2] => 255 )
If you happen to need a way to output a Windows BMP file (e.g. when using the PEAR ExcelWriter), feel free to use the following code:
function imagebmp ( $im , $fn = false )
if (! $im ) return false ;
if ( $fn === false ) $fn = ‘php://output’ ;
$f = fopen ( $fn , «w» );
if (! $f ) return false ;
//Image dimensions
$biWidth = imagesx ( $im );
$biHeight = imagesy ( $im );
$biBPLine = $biWidth * 3 ;
$biStride = ( $biBPLine + 3 ) & ~ 3 ;
$biSizeImage = $biStride * $biHeight ;
$bfOffBits = 54 ;
$bfSize = $bfOffBits + $biSizeImage ;
//BITMAPFILEHEADER
fwrite ( $f , ‘BM’ , 2 );
fwrite ( $f , pack ( ‘VvvV’ , $bfSize , 0 , 0 , $bfOffBits ));
//BITMAPINFO (BITMAPINFOHEADER)
fwrite ( $f , pack ( ‘VVVvvVVVVVV’ , 40 , $biWidth , $biHeight , 1 , 24 , 0 , $biSizeImage , 0 , 0 , 0 , 0 ));
$numpad = $biStride — $biBPLine ;
for ( $y = $biHeight — 1 ; $y >= 0 ; — $y )
for ( $x = 0 ; $x < $biWidth ; ++ $x )
$col = imagecolorat ( $im , $x , $y );
fwrite ( $f , pack ( ‘V’ , $col ), 3 );
>
for ( $i = 0 ; $i < $numpad ; ++ $i )
fwrite ( $f , pack ( ‘C’ , 0 ));
>
fclose ( $f );
return true ;
>
?>
It works the same way as regular imagejpeg/imagepng do and only supports GD2.0 true colour bitmaps (which is what’s required by ExcelWriter).
I wrote a simple function to convert an image resource to PGM (portable graymap) in order to feed it to an OCR program. It works just like the rest of the image output functions, and will convert to grayscale for you:
function imagepgm ( $image , $filename = null )
$pgm = «P5 » . imagesx ( $image ). » » . imagesy ( $image ). » 255\n» ;
for( $y = 0 ; $y < imagesy ( $image ); $y ++)
for( $x = 0 ; $x < imagesx ( $image ); $x ++)
$colors = imagecolorsforindex ( $image , imagecolorat ( $image , $x , $y ));
$pgm .= chr ( 0.3 * $colors [ «red» ] + 0.59 * $colors [ «green» ] + 0.11 * $colors [ «blue» ]);
>
>
if( $filename != null )
$fp = fopen ( $filename , «w» );
fwrite ( $fp , $pgm );
fclose ( $fp );
>
else
return $pgm ;
>
>
?>
I know this might look somewhat superfluous to others, but i once came across a situation where i needed a *strong* blur on an image without having ImageMagick installed. Executing the convolution-filter several times on the same image is awfully slow and still doesn’t give a good blur.
The function below accepts a truecolor-image and a blur-factor between 0.0 and 1.0. Beware: It’s still quite slow.
function blurImage ( $srcimg , $blur )
$blur = $blur * $blur ;
$blur = max ( 0 , min ( 1 , $blur ));
$srcw = imagesx ( $srcimg );
$srch = imagesy ( $srcimg );
$dstimg = imagecreatetruecolor ( $srcw , $srch );
$cr = 0 ; $cg = 0 ; $cb = 0 ;
$nr = 0 ; $ng = 0 ; $nb = 0 ;
$rgb = imagecolorat ( $srcimg , 0 , 0 );
$or = ( $rgb >> 16 ) & 0xFF ;
$og = ( $rgb >> 8 ) & 0xFF ;
$ob = ( $rgb ) & 0xFF ;
$nr = ( $cr * $f1a ) + ( $or * $f1b );
$ng = ( $cg * $f1a ) + ( $og * $f1b );
$nb = ( $cb * $f1a ) + ( $ob * $f1b );
$rgb = imagecolorat ( $srcimg , 0 , $y );
$or = ( $rgb >> 16 ) & 0xFF ;
$og = ( $rgb >> 8 ) & 0xFF ;
$ob = ( $rgb ) & 0xFF ;
$x = $srcw ;
while ( $x —)
//horizontal
$rgb = imagecolorat ( $srcimg , $x , $y );
$cr = ( $rgb >> 16 ) & 0xFF ;
$cg = ( $rgb >> 8 ) & 0xFF ;
$cb = ( $rgb ) & 0xFF ;
$nr = ( $cr * $f1a ) + ( $or * $f1b );
$ng = ( $cg * $f1a ) + ( $og * $f1b );
$nb = ( $cb * $f1a ) + ( $ob * $f1b );
//vertical
$rgb = imagecolorat ( $dstimg , $x , $y + 1 );
$vr = ( $rgb >> 16 ) & 0xFF ;
$vg = ( $rgb >> 8 ) & 0xFF ;
$vb = ( $rgb ) & 0xFF ;
$nr = ( $nr * $f1a ) + ( $vr * $f1b );
$ng = ( $ng * $f1a ) + ( $vg * $f1b );
$nb = ( $nb * $f1a ) + ( $vb * $f1b );
$srcimg = imagecreatefromjpeg ( «test.jpg» );
$dstimg = blurImage ( $srcimg , 0.2 );
header ( ‘Content-type: image/jpeg’ );
echo( imagejpeg ( $dstimg ) );
exit();
This is an example of get high resolution images.
/**
* Class name : resizeImage
* Created by : wang
* Description : This class is to resize the image from original size to new size
*/
class resizeImage
/**
* Function name : resize_img
* Description : This function is to resize image
* @param : $origimg variable is the original image
* @param : $newimg variable is the new image
* @param : $w variable is the width of image
* @param : $f variable is the height of image
*/
public function resize_img ( $origimg , $newimg , $w , $h ) $info = getimagesize ( $origimg );
$mime = $info [ ‘mime’ ];
// Make sure that the requested file is actually an image
if( substr ( $mime , 0 , 6 ) != ‘image/’ )
header ( ‘HTTP/1.1 400 Bad Request’ );
return ‘Error: requested file is not an accepted type: ‘ . $origimg ;
exit();
>
// Check they extention of image
$extension = image_type_to_extension ( $info [ 2 ]);
if( strtolower ( $extension ) == ‘.png’ ) $img = $this -> resize_imagepng ( $origimg , $w , $h );
imagepng ( $img , $newimg );
imagedestroy ( $img );
>elseif( strtolower ( $extension ) == ‘.jpeg’ ) $img = $this -> resize_imagejpeg ( $origimg , $w , $h );
imagejpeg ( $img , $newimg );
imagedestroy ( $img );
>elseif( strtolower ( $extension == ‘.gif’ )) $img = $this -> resize_imagegif ( $origimg , $w , $h );
imagegif ( $img , $newimg );
imagedestroy ( $img );
>
>
/**
* End function name : resize_img
*/
/**
* Function name : resize_imagepng
* Description : This function is to resize png image
* @param : $file variable is the original image
* @param : $w variable is the width of image
* @param : $f variable is the height of image
*/
private function resize_imagepng ( $file , $w , $h ) list( $width , $height ) = getimagesize ( $file );
$src = imagecreatefrompng ( $file );
$dst = imagecreatetruecolor ( $w , $h );
imagecopyresampled ( $dst , $src , 0 , 0 , 0 , 0 , $w , $h , $width , $height );
return $dst ;
>
/**
* End function name : resize_imagepng
*/
/**
* Function name : resize_imagejpeg
* Description : This function is to resize jpeg image
* @param : $file variable is the original image
* @param : $w variable is the width of image
* @param : $f variable is the height of image
*/
private function resize_imagejpeg ( $file , $w , $h ) list( $width , $height ) = getimagesize ( $file );
$src = imagecreatefromjpeg ( $file );
$dst = imagecreatetruecolor ( $w , $h );
imagecopyresampled ( $dst , $src , 0 , 0 , 0 , 0 , $w , $h , $width , $height );
return $dst ;
>
/**
* End function name : resize_imagejpeg
*/
/**
* Function name : resize_imagegif
* Description : This function is to resize gif image
* @param : $file variable is the original image
* @param : $w variable is the width of image
* @param : $f variable is the height of image
*/
private function resize_imagegif ( $file , $w , $h ) list( $width , $height ) = getimagesize ( $file );
$src = imagecreatefromgif ( $file );
$dst = imagecreatetruecolor ( $w , $h );
imagecopyresampled ( $dst , $src , 0 , 0 , 0 , 0 , $w , $h , $width , $height );
return $dst ;
>
/**
* End function name : resize_imagegif
*/
>
/**
* End class name : resizeImage
*/
?>
How to Display Image in PHP from Folder/Directory
Here, I have to show the code display image in PHP from folder. As well as, might get image from the database.
After that, you might see some examples of the list of all images in folder and subfolders from the directory and folder using PHP.
Display Image in Php from Folder
Hence, I have to show some methods of displaying image from the directory folder path.
Here in your form and text
"; ?>
Thus, we have to use echo to print the image. this is the keywords of Php. Php provides this for print an integer and string values.
After that, Html syntax for displaying an image. now, as you know put the image name from the main folder.
As a rule, in the image, there is a source option. you can add image name make sure must know your image folder path in your project.
So, if you have a folder and subfolder inside the folder available number of images. therefore, pick the specific image name and copy image name.
for example, you can see have to mention an example of image source src=’image-name.png’ this is a direct image path.
So, if the image in directory or folder and subfolder then put this code src=’folderName/SubfolderName/image-name.png’. Make sure you understand the folder directory and subfolder directory.
Similarly, list all images in folder and subfolders you can get an image and fetch the image from a folder.
How to Display Image from Database in Php
Similarly, we created an above code for retrieve images from directory same as getting the image name from the database in PHP and retrieve an image.
Here in your form and text
"; > ?>