Imagick

PHP Programming

PHP Programming Examples

<!DOCTYPE html>
<html>
	<head>
		<title>File upload using Imagick</title>
	</head>
	<body>
		<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
			Select File: <input type="file" required name="imageUp" accept="image/*" />
			Eneter file name: <input type="text" required name="fileName" />
			<button type="submit">Upload</button>
		</form>
		<?php
		if(isset($_FILES['imageUp']['name'])){

			/* Get the extension of the file */
			$extension = strtolower(substr($_FILES["imageUp"]["name"], strrpos($_FILES["imageUp"]["name"], '.')+1));
			$dir = "images";
			$filename = $_POST["fileName"].".".$extension;
			$filepath = $dir."/".$filename;
			
			/* Creates an Imagick instance for image */
			$image = new Imagick($_FILES["imageUp"]["tmp_name"]);
			
			/* Changes the size of the image */
			$image->thumbnailImage(500,500,true);
			
			/* Upload an image to by specified filename */
			if($image->writeImage($filepath)) {
				
				/* Get the image dimension */
				list($width, $height) = getimagesize($filepath);
				$handlers = array('jpg'  => 'imagecreatefromjpeg', 
						'jpeg' => 'imagecreatefromjpeg', 
						'png'  => 'imagecreatefrompng', 
						'gif'  => 'imagecreatefromgif', 
						'bmp' => 'imagecreatefromwbmp'
				);
				
				/* Find image extension */
				if ($handler = $handlers[$extension]) {
					$image = $handler($filepath);
					$filesave = $dir."/".$_POST["fileName"].".jpg";
					
					/* Create a new true color image */
					$tn = imagecreatetruecolor($width, $height);
					
					/* Allocate a color for an image */
					$white = imagecolorallocatealpha($tn, 255, 255, 255,127);
					
					/* Fill image with color */
					imagefill($tn, 0, 0, $white);
					
					/* Copy and resize part of the image with resampling */
					imagecopyresampled($tn, $image, 0, 0, 0, 0, $width, $height, $width, $height) ;
					
					/* Publish image */
					header('Content-Type: image/jpeg');
					imagejpeg($tn, $filesave, 100);
					
					/* Destroy an image */
					imagedestroy($tn);
					
					/* Delete all the images without .jpg extension */
					if($extension != "jpg")
						unlink($filepath);
				}
				echo "File uploaded successfully!";
			}
			else
				echo "Fail to upload!";
		}
		?>
	</body>
</html>


          /****** Output ******/
          

Choose File


Enter file name




File uploaded successfully!

Learn more about Imagick, thumbnailImage, writeImage, imagecreatetruecolor, imagecolorallocatealpha, imagefill, imagecopyresampled and imagedestroy