Problem with rezising images ...

See all posts See thread Reply

Re: Problem with rezising images ... new!
by Stefan, 16 years ago
Colin and Dave ...
I got it working now ...
You can check my code pls give comments if I do something stupid
or it can be done in a better way ...

Anyway, I have uploaded an original image of 400x495 and this code
crop out 4 new images: 49x48, 128x128, 256x256 and 400x400

I use a form where I drag a square over the original to select the are I want in the cropped images, and now it works fine, just as I want it ...

I just want to know if I did it in a correct way or if it can be done better???

BTW Colin: I sent u a donation a few hrs ago for a license :)

$max_width  = "400";
$max_height = "400";
$upload_path = get_profile_image_path($id, $typ, "");
$fname_original = $upload_path."/".$fname;
list($original_width, $original_height, $type, $attr) = getimagesize($fname_original);
$arr_size[] = "400";
$arr_size[] = "256";
$arr_size[] = "128";
$arr_size[] = "048";
$n = count($arr_size);

for ($i=0; $i<$n; $i++) {

 // T R B L
 $top     = $input_top;
 $right   = $original_width - $input_left - $input_width;
 $bottom  = $original_height - $input_height - $input_top;
 $left    = $input_left;
 $file_new_name_body = "pic".$arr_size[$i]."px";

 // Start Step 1 - Crop
 $ul_handle = new upload($fname_original);  
 if ($ul_handle->uploaded) {
  $ul_handle->image_x             = $arr_size[$i];
  $ul_handle->image_y             = $arr_size[$i];
  $ul_handle->jpeg_quality        = 80;
  $ul_handle->file_overwrite      = true;
  $ul_handle->file_auto_rename    = false;
  $ul_handle->image_ratio_crop    = true;
  $ul_handle->file_new_name_body  = $file_new_name_body;
  $ul_handle->image_crop          = array($top, $right, $bottom, $left);  // T R B L
  $ul_handle->Process($upload_path);  
 }
 // End Step 1 - Crop

 // Start Step 2 - Resize
 $ul_handle = new upload($upload_path."/".$file_new_name_body.".jpg"); 
 if ($ul_handle->uploaded) {
  $ul_handle->jpeg_quality        = 80;
  $ul_handle->image_resize        = true;
  $ul_handle->file_overwrite      = true;
  $ul_handle->file_auto_rename    = false;
  $ul_handle->image_ratio_y       = true;
  $ul_handle->image_x             = $arr_size[$i];
  $ul_handle->file_new_name_body  = $file_new_name_body;
  $ul_handle->Process($upload_path); 
 }
 // End Step 2 - Resize
}
Reply
Re: Problem with rezising images ... new!
by colin, 16 years ago
What you do is valid, but you are losing quality by processing each image twice.

The class should be able to resize and crop at the same time (the cropping would happen after the resizing, as it is the way the class works). But there seem to be an issue here...

I will have an in depth look at it tonight.

You sent me an email for a license? I haven't received anything; would you please be kind enough as to resend it?Reply
Re: Problem with rezising images ... new!
by Stefan, 16 years ago
Yes, that was the problem I had ... My 2 step "temporary" solution works,
but I really looking forward to see your 1 step solution ... Hopefully 2morrow :)))

On http://www.verot.net/php_class_upload_license.htm I clicked the PayPal link
and sent you 15 EUR for a commercial license ...

Donation Details

Confirmation number: 1PY957874V587602Y
Donation amount: €15.00 EUR
Total: €15.00 EUR
Purpose: class.upload commercial license
Contributor: Stefan Fahlberg

Check your mail, it's probably there !

/StefanReply
Re: Problem with rezising images ... new!
by colin, 16 years ago
Thank you for the donation. I however haven't received any email, and therefore don't have your email address. Could you please email me, so I can send you back the license document?Reply