Php image call function

Функции 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
*/
?>

Источник

Calling image in this PHP function

Right click on those question marks: choose «open image in new window». You should see a new page with a 404 error. Look at the link of that page: that’s the path where your image is supposed to be (if you’re getting a 404 error it simply means they are not there). Create the folder images and upload the file thumbsup.png . Now reload the page.

Saturnix 9637

Read More

I suppose the path you are using has to be absolute eg ( http://. /images/myimage.jpg ) instead /images/myimage.jpg . This is common issue when you write custom code (don’t use standard framework) and use .htaccess to rewrite urls.

You can set basepath as constant so you can easy change it if you switch domains.

define("BASE_PATH", "http://mydomain.com"); 
BASE_PATH."/images/myimage.jpg" 

Or use base tag in your head in html

And as Saturnix said in his answer you should have folder named «images» and filename you put in src.

If an image can’t be found in the location you specify in your HTML, the browser will display a broken image link marker, maybe like one of these;

  • Chromeenter image description here
  • IE10enter image description here
  • Firefox 10enter image description here

Each browser has its own marker. Maybe your browser uses a question mark to indicate a broken image link.

More Answer

  • issues calling function in PHP
  • self calling function inside variable php
  • How can I use this php empty function to properly display CSS?
  • Calling a php function with the help of a button or a click
  • PHP Calling a function on matches in regexp
  • Ajax calling PHP Function
  • php system() function calling cgi on IIS7 vs Apache
  • How to use the page URL as a variable in a php function that decides which image to load from /images depending on the URL
  • php fetchpage() function help, identifying image sizes from a url in php
  • PHP GD Image Cropping Function
  • display image in a php function link
  • How to implement this image preloader into my php file?
  • Convert this PHP function to get server variables to VB .Net
  • need help understanding the memory management for this php function
  • Image onclick event for calling function is not working for Firefox and Chrome
  • calling single javascript function for each php variable fetched from database, multiple countdown program
  • calling a stored postgres function from php
  • php class scope when calling a non-method function not accessing all class members
  • PHP: Is this syntax okay for calling a function with arguments?
  • Problem in using php function imagecreatefromjpeg for image having Adobe1998 color profile
  • How to use this function with multiple parts of a php program
  • Barcode image is not generating using barcode_encode_genbarcode function in php , it display blank barcode image
  • calling a php function from another file with passed data remaining intact not working
  • Automatically calling a javascript function from php
  • Calling a PHP function with arguments from GET or POST
  • Automatically calling a javascript function from php
  • Why does this php array function gives me an error
  • Call specific function on PHP from AJAX with newform image
  • PHP image load function reads from the controller instead of domain/folder/to/image
  • PHP image load function reads from the controller instead of domain/folder/to/image
  • «Uncaught ReferenceError: gotoLogIn is not defined» on PHP calling Javscript function
  • Calling a PHP function from same PHP file throught AJAX
  • PHP — Execute SQL calling function does not work
  • How to modify this php function to check all lines before result execution?
  • Problem with calling a php function from javascript using ajax
  • Calling a Function from another class using Extends in PHP
  • Calling a function from another PHP page
  • Reducing an image size repeatedly with Imagemagick and filesize() php function
  • What is the «Correct way» to call and run this php curl function from a secure SSL path?
  • How can I get this recursive PHP function to create and associative array of my class objects?
  • How PHP file will know and process a function through this callback parameter?
  • How PHP file will know and process a function through this callback parameter?
  • i want to run php function at back end after every 3 sec and update some values in db and this function not disturb other functions executions
  • Laravel- calling PHP function from Angular to update database gives error: Expression expected
  • Allow spanish letters php like ñ áéíóú whit this function preg_replace();
  • Calling a function in php with link in html

Источник

Читайте также:  Path to stream java
Оцените статью