class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
more info about the class
system information - GD version : 2.0.28 - supported image types : png jpg gif bmp - open_basedir : no restriction source is an uploaded file - upload OK - file name OK - source variables file_src_name : ayya?lar.jpg file_src_name_body : ayya?lar file_src_name_ext : jpg file_src_pathname : /tmp/phpVeyvkP file_src_mime : image/jpeg file_src_size : 33686 (max= 52428800) file_src_error : 0 - source file is an image image_src_x : 640 image_src_y : 480 image_src_pixels : 307200 image_src_type : jpg image_src_bits : 8 process file to /pictures/pictures/ - file size OK - file mime OK : image/jpeg - new file name body : 230594692_389692_T - file name safe format - destination variables file_dst_path : /pictures/pictures/ file_dst_name_body : 230594692_389692_T file_dst_name_ext : jpg - image operation, keep extension - checking for auto_rename - destination file details file_dst_name : 230594692_389692_T.jpg file_dst_pathname : /pictures/pictures/230594692_389692_T.jpg - 230594692_389692_T.jpg doesn't exist already - image resizing or conversion wanted process file to /pictures/pictures/ - file size OK - file mime OK : image/jpeg - new file name body : 230594692_389692_BT - file name safe format - destination variables file_dst_path : /pictures/pictures/ file_dst_name_body : 230594692_389692_BT file_dst_name_ext : jpg - image operation, keep extension - checking for auto_rename - destination file details file_dst_name : 230594692_389692_BT.jpg file_dst_pathname : /pictures/pictures/230594692_389692_BT.jpg - 230594692_389692_BT.jpg doesn't exist already - image resizing or conversion wanted process file to /pictures/pictures/ - file size OK - file mime OK : image/jpeg - new file name body : 230594692_389692 - file name safe format - destination variables file_dst_path : /pictures/pictures/ file_dst_name_body : 230594692_389692 file_dst_name_ext : jpg - image operation, keep extension - checking for auto_rename - destination file details file_dst_name : 230594692_389692.jpg file_dst_pathname : /pictures/pictures/230594692_389692.jpg - 230594692_389692.jpg doesn't exist already - image resizing or conversion wanted