DevelopPHP
home gear home donate
Search Results For
in:

Libraries book

HTML Library CSS Library JavaScript Library PHP Library

Videosbook

PHP and MySQL JavaScript HTML and CSS Vector and 3D Flash Actionscript Android Dev Miscellaneous

Resourcesbook

Website Hosting Developer Q+A
<iframe width="560" height="315" src="http://www.youtube.com/embed/IxpAOmvawyw" frameborder="0" allowfullscreen></iframe>
You can embed this video on your blog or web page by copying the video embed code above and pasting it into the source code of your page. Adjust the width and height to specify the size you would like it to display.
Thumb PHP Image Crop Thumbnail Function Tutorial jpg gif png Resize On the Fly
Embed Source - http://www.youtube.com/watch?v=IxpAOmvawyw
Publish Date - Mar 23, 2011     Author - Adam Khoury
PHP Image Crop Thumbnail Function Tutorial jpg gif png Resize On the Fly
Master PHP Image Processing with Adam Khoury in this Video Textbook Series. In this video we learn how to script a universal PHP image crop function that runs inline with our resize function created in the previous lesson. It uses a handful of functions from the GD library in PHP. In our example the function will work for cropping JPG, GIF, and PNG type of images universally.
Lesson Code
<!-- -------------------------------------------- -->
<!-- "my_file.php" that has the simple form on it -->
<!-- -------------------------------------------- -->
                       
<form enctype="multipart/form-data" method="post" action="image_upload_script.php">
Choose your file here:
<input name="uploaded_file" type="file"/><br /><br />
<input type="submit" value="Upload It"/>
</form>

<!-- -------------------------------------------- -->
<!-- "image_upload_script.php" -->
<!-- -------------------------------------------- -->

<?php
// Access the $_FILES global variable for this specific file being uploaded
// and create local PHP variables from the $_FILES array of information
$fileName $_FILES["uploaded_file"]["name"]; // The file name
$fileTmpLoc $_FILES["uploaded_file"]["tmp_name"]; // File in the PHP tmp folder
$fileType $_FILES["uploaded_file"]["type"]; // The type of file it is
$fileSize $_FILES["uploaded_file"]["size"]; // File size in bytes
$fileErrorMsg $_FILES["uploaded_file"]["error"]; // 0 for false... and 1 for true
$kaboom explode("."$fileName); // Split file name into an array using the dot
$fileExt end($kaboom); // Now target the last array element to get the file extension
// START PHP Image Upload Error Handling --------------------------------------------------
if (!$fileTmpLoc) { // if file not chosen
    
echo "ERROR: Please browse for a file before clicking the upload button.";
    exit();
} else if(
$fileSize 5242880) { // if file size is larger than 5 Megabytes
    
echo "ERROR: Your file was larger than 5 Megabytes in size.";
    
unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder
    
exit();
} else if (!
preg_match("/.(gif|jpg|png)$/i"$fileName) ) {
     
// This condition is only if you wish to allow uploading of specific file types    
     
echo "ERROR: Your image was not .gif, .jpg, or .png.";
     
unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder
     
exit();
} else if (
$fileErrorMsg == 1) { // if file upload error key is equal to 1
    
echo "ERROR: An error occured while processing the file. Try again.";
    exit();
}
// END PHP Image Upload Error Handling ---------------------------------
// Place it into your "uploads" folder mow using the move_uploaded_file() function
$moveResult move_uploaded_file($fileTmpLoc"uploads/$fileName");
// Check to make sure the move result is true before continuing
if ($moveResult != true) {
    echo 
"ERROR: File not uploaded. Try again.";
    
unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder
    
exit();
}
unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder
// ---------- Include Adams Universal Image Resizing Function --------
include_once("ak_php_img_lib_1.0.php");
$target_file "uploads/$fileName";
$resized_file "uploads/resized_$fileName";
$wmax 300;
$hmax 300;
ak_img_resize($target_file$resized_file$wmax$hmax$fileExt);
// ----------- End Adams Universal Image Resizing Function ----------
// ------ Start Adams Universal Image Thumbnail(Crop) Function ------
$target_file "uploads/resized_$fileName";
$thumbnail "uploads/thumb_$fileName";
$wthumb 150;
$hthumb 150;
ak_img_thumb($target_file$thumbnail$wthumb$hthumb$fileExt);
// ------- End Adams Universal Image Thumbnail(Crop) Function -------
// Display things to the page so you can see what is happening for testing purposes
echo "The file named <strong>$fileName</strong> uploaded successfuly.<br /><br />";
echo 
"It is <strong>$fileSize</strong> bytes in size.<br /><br />";
echo 
"It is an <strong>$fileType</strong> type of file.<br /><br />";
echo 
"The file extension is <strong>$fileExt</strong><br /><br />";
echo 
"The Error Message output for this upload is: $fileErrorMsg";
?>

<!-- -------------------------------------------- -->
<!-- "ak_php_img_lib_1.0.php" -->
<!-- -------------------------------------------- -->

<?php
// Adam Khoury PHP Image Function Library 1.0
// -------------- RESIZE FUNCTION -------------
// Function for resizing any jpg, gif, or png image files
function ak_img_resize($target$newcopy$w$h$ext) {
    list(
$w_orig$h_orig) = getimagesize($target);
    
$scale_ratio $w_orig $h_orig;
    if ((
$w $h) > $scale_ratio) {
           
$w $h $scale_ratio;
    } else {
           
$h $w $scale_ratio;
    }
    
$img "";
    
$ext strtolower($ext);
    if (
$ext == "gif"){ 
    
$img imagecreatefromgif($target);
    } else if(
$ext =="png"){ 
    
$img imagecreatefrompng($target);
    } else { 
    
$img imagecreatefromjpeg($target);
    }
    
$tci imagecreatetruecolor($w$h);
    
// imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
    
imagecopyresampled($tci$img0000$w$h$w_orig$h_orig);
    if (
$ext == "gif"){ 
        
imagegif($tci$newcopy);
    } else if(
$ext =="png"){ 
        
imagepng($tci$newcopy);
    } else { 
        
imagejpeg($tci$newcopy84);
    }
}
// ------------- THUMBNAIL (CROP) FUNCTION -------------
// Function for creating a true thumbnail cropping from any jpg, gif, or png image files
function ak_img_thumb($target$newcopy$w$h$ext) {
    list(
$w_orig$h_orig) = getimagesize($target);
    
$src_x = ($w_orig 2) - ($w 2);
    
$src_y = ($h_orig 2) - ($h 2);
    
$ext strtolower($ext);
    
$img "";
    if (
$ext == "gif"){ 
    
$img imagecreatefromgif($target);
    } else if(
$ext =="png"){ 
    
$img imagecreatefrompng($target);
    } else { 
    
$img imagecreatefromjpeg($target);
    }
    
$tci imagecreatetruecolor($w$h);
    
imagecopyresampled($tci$img00$src_x$src_y$w$h$w$h);
    if (
$ext == "gif"){ 
        
imagegif($tci$newcopy);
    } else if(
$ext =="png"){ 
        
imagepng($tci$newcopy);
    } else { 
        
imagejpeg($tci$newcopy84);
    }
}
?>

Home   •   Terms of Use   •   T-Shirts   •   RSS   •   Testimonials   •   Subscribe   •   Classroom Chalkboard   •   Developer Q+A   •   Donate   •   Top ↑
Popular In PHP / MySQL E-Commerce Store Production
Social Network Website Building
Image Upload / Photo Processing
CMS Software Programming
Mass Email Systems
Magic XML Data
Search Programming
Popular In JavaScript JSON Programming
Ajax Programming
Animating Elements
WYSIWYG Programming
Date/Time Programming
DOM Scripting
Object Reference
Popular In HTML Canvas Element
New Form Elements
Audio Element
Video Element
Drag and Drop
Event Handling
Element Grouping
Popular In CSS Custom Font Embedding
Dynamic Fit Backgrounds
Theatre Mode
Box Overlays
CSS Level 1 Properties
CSS Level 2 Properties
CSS Level 3 Properties
DevelopPHP.com is a growing educational system packed with video and written material that you can access 24/7 100% free. The focus here in 2014 is spread between five technologies: HTML, CSS, JavaScript, PHP and MySQL. Learn programming theory, database interaction, web design, animation, graphics editing, vector art, 3D modeling, and much more. The educational experience here is a hybrid one offering both high quality video tutorials and code libraries that grow more robust every day. The code libraries are being assembled so that developers can discover all of the building blocks of their favorite languages. The libraries coupled with high quality video tutorials will take you deep down the rabbit hole very quickly. You can also ask questions and get free advice at WebIntersect.com.
HTML5