redarrow Posted January 4, 2008 Share Posted January 4, 2008 made a error dam please help <?php /******** *********/ Class ImageUpload { var $pathFile; var $originalFileName; var $SO; var $sizeMaxFileName = 20; var $extensionFile; var $nameFile; var $CurrentBit=0; function ClassUpload() { } function setPath($pathFile) { $this->pathFile = $pathFile; } function setSizeMaxFileName($sizeMaxFileName) { $this->sizeMaxFileName = $sizeMaxFileName; } function setOriginalFileName($originalFileName) { $this->originalFileName = $originalFileName; } function getOriginalFileName() { return $this->originalFileName; } function getNameFile() { return $this->nameFile; } function RandomName($nameLength) { $name = ""; for ($index = 1; $index <= $nameLength; $index++) { mt_srand((double) microtime() * 1000000); $randomNumber = mt_rand(1, 62); if ($randomNumber < 11) $name .= Chr($randomNumber + 48 - 1); // [ 1,10] => [0,9] else if ($randomNumber < 37) $name .= Chr($randomNumber + 65 - 10); // [11,36] => [A,Z] else $name .= Chr($randomNumber + 97 - 36); // [37,62] => [a,z] } $name = $name."_".time(); $this->formatNameFile(); $this->formatExtensionFile(); $this->originalFileName = $this->nameFile."_".$name.".".$this->extensionFile; } function InvalidCaracter($var) { $a="ֱבֹיֽם׃ףתַחֳדְאֲגֺך־מװפױץ& -!@#$%¨&*()_+}=}{[]^~?/:;><,'´`\"\\÷"; $b="AaEeIiOoUuCcAaAaAaEeIiOoOoUue___________________________________"; $var = strtr($var,$a,$b); $var = strtolower($var); return $var; } function formatNameFile() { $originalFileName = $this->originalFileName; $posDivisionNameExtension = strpos($originalFileName,"."); $nameFile = substr($originalFileName,0,$posDivisionNameExtension); $nameFile = $this->InvalidCaracter($nameFile); $this->nameFile = $nameFile; } function formatExtensionFile() { $originalFileName = $this->originalFileName; $invertFile = strrev($originalFileName); $posDivisionNameExtension = strpos($invertFile,"."); $extensionFile = substr($invertFile,0,$posDivisionNameExtension); $extensionFile = strrev($extensionFile); $extensionFile = $this->InvalidCaracter($extensionFile); $this->extensionFile = $extensionFile; } function getExtensionFile() { return $this->extensionFile; } function setNameAndExtension() { $this->formatNameFile(); $this->formatExtensionFile(); } function formatOriginalFileName() { $this->formatNameFile(); $this->formatExtensionFile(); $sizeFileName = strlen($this->nameFile); if ($sizeFileName>$this->sizeMaxFileName) { $this->nameFile = substr($this->nameFile,0,$this->sizeMaxFileName); } $this->originalFileName = $this->nameFile. "." .$this->extensionFile; } function setSO($SO) { $this->SO = $SO; } function getDivisionDIR() { $SO = $this->SO; $SO = strtolower($SO); switch ($SO) { case "w": $divisionDir = "\\"; break; case "l": $divisionDir = "/"; break; case "u": $divisionDir = "/"; break; } return $divisionDir; } //FILE IS A FILENAME WITHOUT FULLPATH function isFileExist($file) { $x=""; $file = $this->originalFileName; $openDir = @opendir($this->pathFile); while (($filesServer=@readdir($openDir))!=false) { if (is_file($this->pathFile.$this->getDivisionDIR().$filesServer)): if ($filesServer==$file) { $x = true; break; } else { $x = false; } else: $x = false; endif; } @closedir($openDir); return $x; } //FILE IS A FILENAME WITHOUT FULLPATH i.e. $_FILES['name'] function uploadCopyFile($file,$final_name) { $x = false; if($final_name!="") $path_upload_main = $this->pathFile.$this->getDivisionDIR().$final_name; else $path_upload_main = $this->pathFile.$this->getDivisionDIR().$this->originalFileName; $openDir = @opendir($this->pathFile); if (@copy($file,$path_upload_main)): if (@is_uploaded_file($file)) { $x = true; } endif; @closedir($openDir); return $x; } //FILE IS A FILENAME WITHOUT FULLPATH i.e. $_FILES['tmp_name'] function uploadMoveFile($file,$final_name="") { $x = false; if($final_name!="") $pathUpload = $this->pathFile.$this->getDivisionDIR().$final_name; else $pathUpload = $this->pathFile.$this->getDivisionDIR().$this->originalFileName; if (@move_uploaded_file($file,$pathUpload)): if (@is_uploaded_file($file)) { $x = true; } endif; return $x; } /******FOR COYING IMAGE ONE TO OTHER PLACE //RETURN TRUE/FASLE image_name_field= IS A FILENAME WITHOUT FULLPATH i.e.$_FILES['name'] folder_path =IS A FOLDER PATH WITHOUT FILENAME final_name= FULLPATH WITH FILENAME IN THAT UPLOADED FILE IS STORED ****/ function upload_copyimage($image_name_field, $folder_path,$final_name="") { $this->setSizeMaxFileName(25); $this->setSO("l"); //FOR WINDOWS USER w ELSE l $this->setPath($folder_path); $this->setOriginalFileName($image_name_field); $this->formatOriginalFileName(); $this->setNameAndExtension(); $nameFileFull = $this->getOriginalFileName(); if (($this->isFileExist($image_name_field))): $upload_result=false; else: if (!($this->uploadCopyFile($image_name_field,$final_name))): $upload_result=true; else: $upload_result=true; endif; endif; return $upload_result; } /******FOR MOVING IMAGE ONE TO OTHER PLACE //RETURN TRUE/FASLE image_name_field= IS A FILENAME WITHOUT FULLPATH i.e.$_FILES['tmp_name'] folder_path =IS A FOLDER PATH WITHOUT FILENAME final_name= FULLPATH WITH FILENAME IN WHICH UPLOADED FILE IS STORED ****/ function upload_moveimage($image_temp_name, $folder_path,$final_name="") { $this->setSizeMaxFileName(25); $this->setSO("l");//FOR WINDOWS USER w ELSE l $this->setPath($folder_path); $this->setOriginalFileName($image_temp_name); $this->formatOriginalFileName(); $this->setNameAndExtension(); $nameFileFull = $this->getOriginalFileName(); if (($this->isFileExist($image_temp_name))): $upload_result=false; else: if (!($this->uploadMoveFile($image_temp_name,$final_name))): $upload_result=true; else: $upload_result=true; endif; endif; return $upload_result; } /****USED BY getCrop RETURN CROPING IMAGE FOR GIVVEN WIDTH AND HEIGHT TYPE =IS SIDE OF CROP HEIGHT OR WIDTH ****/ function crop_image($old_image,$new_image,$width,$height,$type="") { $dimensions = getimagesize($old_image); $old_x=$dimensions[0]; $old_y=$dimensions[1]; if ($old_x < $width) { $width=$old_x; } if ($old_y < $height) { $height=$old_y; } $canvas = imagecreatetruecolor($width,$height); $system= substr(strrchr($old_image, "."), 1 ); if (preg_match('/png/',$system)) { $piece = imagecreatefrompng($old_image); } else if (preg_match('/gif/',$system)) { $piece = imagecreatefromgif($old_image); } else $piece = imagecreatefromjpeg($old_image); $newwidth = $dimensions[0] ;/// 2; $newheight = $dimensions[1];// / 2; if ($newwidth>$width) { $cropLeft = ($newwidth/2) - ($width/2); $newwidth=$width; } else $cropLeft = 0; if ($newheight > $height) { $cropHeight = ($newheight/2) - ($height/2); $newheight=$height; } else $cropHeight = 0;//($newheight); if($system=="gif") { $transparent = imagecolorallocate($canvas, "255", "255", "255"); imagefill($canvas, 0, 0, $transparent); } // Generate the cropped image @imagecopyresized($canvas, $piece, 0,0, $cropLeft, $cropHeight,$newwidth, $newheight, $width, $height); if (preg_match('/png/',$system)) { imagepng($canvas,$new_image); } else if (preg_match('/gif/',$system)) { imagegif($canvas,$new_image,90); } else imagejpeg($canvas,$new_image,90); @imagedestroy($canvas); @imagedestroy($piece); } //USED BY getCrop //RETURN RESIZED IMAGE FOR GIVEN WIDTH AND HEIGHT function resize_crop($name,$filename,$new_w,$new_h) { $system= substr(strrchr($name, "."), 1 ); if (preg_match('/jpg|jpeg/',$system)) { $src_img=imagecreatefromjpeg($name); } else if (preg_match('/png/',$system)) { $src_img=imagecreatefrompng($name); } else if (preg_match('/gif/',$system)) { $src_img=imagecreatefromgif($name); } else $src_img=imagecreatefromjpeg($name); $old_x=imagesx($src_img); $old_y=imagesy($src_img); if ($old_x > $old_y) { $thumb_w=$old_x*($new_h/$old_y); $thumb_h=$new_h; if($thumb_w<$new_w) { $diff=($new_w-$thumb_w); $thumb_w=$new_w; $thumb_h=($new_h+$diff); } } if ($old_x < $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_w/$old_x); if($thumb_h<$new_h) { $diff=($new_h-$thumb_h); $thumb_h=$new_h; $thumb_w=($new_w+$diff); } } if ($old_x == $old_y) { if($new_w>$new_h) { $thumb_w=$new_w; $thumb_h=$new_w; } else if($new_w<$new_h) { $thumb_w=$new_h; $thumb_h=$new_h; } else { $thumb_w=$new_w; $thumb_h=$new_h; } } $dst_img= imagecreatetruecolor($thumb_w,$thumb_h); if($system=="gif") { $transparent = imagecolorallocate($dst_img, "255", "255", "255"); imagefill($dst_img, 0, 0, $transparent); } imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); if (preg_match("/png/",$system)) { imagepng($dst_img,$filename); } else if (preg_match('/gif/',$system)) { imagegif($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } imagedestroy($dst_img); imagedestroy($src_img); } //USED BY getResize function resizenew($name,$filename,$new_w,$new_h) { $system= substr(strrchr($name, "."), 1 ); if (preg_match('/jpg|jpeg/',$system)) { $src_img=imagecreatefromjpeg($name); } else if (preg_match('/png/',$system)) { $src_img=imagecreatefrompng($name); } else if (preg_match('/gif/',$system)) { $src_img=imagecreatefromgif($name); } else $src_img=imagecreatefromjpeg($name); $old_x=@imagesx($src_img);//200 $old_y=@imagesy($src_img);//200 if ($old_x > $old_y) {//lowest value assigned to final if($new_w>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); if($thumb_w>$new_w) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; } } else if($new_w<$new_h) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; if($thumb_h>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); } } else { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; if($thumb_h>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); } } } if ($old_x < $old_y) { //lowest value assigned to final if($new_w>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); if($thumb_w>$new_w) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; } } else if($new_w<$new_h) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; if($thumb_h>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); } } else { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); if($thumb_w>$new_w) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; } } } if ($old_x == $old_y) //both same { //lowest value assigned to final if($new_w>$new_h) { $thumb_h=$new_h; $thumb_w=($new_h*$old_x)/$old_y; if($thumb_w>$new_w) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; } } else if($new_w<$new_h) { $thumb_w=$new_w; $thumb_h=($new_w*$old_y)/$old_x; if($thumb_h>$new_h) { $thumb_h=$new_h; $thumb_w=$old_x*($new_h/$old_y); } } else { $thumb_w=$new_w; $thumb_h=$new_h; } } $dst_img= @imagecreatetruecolor($thumb_w,$thumb_h); if($system=="gif") { $transparent = @imagecolorallocate($dst_img, "255", "255", "255"); @imagefill($dst_img, 0, 0, $transparent); } @imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); if (preg_match("/png/",$system)) { imagepng($dst_img,$filename); } else if (preg_match('/gif/',$system)) { imagegif($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } imagedestroy($dst_img); imagedestroy($src_img); } /***** //FOR RETURN FINAL IMAGE AFTER RESIZE AND CROP $final_path=FULLPATH WITH FILENAME IN WHICH CROPPED IMAGE WILL STORED $path= PATH WITHOUT FILENAME IN WHICH $file_name WAS STORED //SAMPLE=getCrop($ORIGINAL_FOLDER,"2.JPG",PHOTO_CROP_WIDTH,PHOTO_CROP_HEIGHT,$final_path); *****/ function getCrop($path,$file_name,$width,$height,$final_path) { $fold_large=$path."/".$file_name; @chmod($fold_large,0777); $size = @getimagesize($fold_large);//300/293 if($size[0]>$width && $size[1]>$height)//both large {//resize + crop $new_name=$path."/rajbl_".$file_name; $this->resize_crop($fold_large,$new_name,$width,$height); @chmod($new_name,0777); $this->crop_image($new_name,$final_path,$width,$height); $final=$final_path; @unlink($new_name); } else if($size[0]>$width && $size[1]<=$height) {//crop on width $new_w=$width; $new_h=$size[1]; $type="w"; $this->crop_image($fold_large,$final_path,$new_w,$new_h,$type); $final =$final_path; } else if($size[0]<=$width && $size[1]>$height) {//crop on height $new_w=$size[0]; $new_h=$height; $type="h"; $this->crop_image($fold_large,$final_path,$new_w,$new_h,$type); $final =$final_path; } else //both small , size[0]<=width && siize[1]<=height {//no operation//only upload @copy($fold_large, $final_path); $final =$final_path; } @chmod($final,0777); return $final; } /**** //FOR RETURN FINAL IMAGE AFTER RESIZE $final_path=FULLPATH WITH FILENAME IN WHICH CROPPED IMAGE WILL STORED $path= PATH WITHOUT FILENAME IN WHICH $file_name WAS STORED $file_name=ONLY FILENAME WHICH WAS STORED IN $path //SAMPLE=getResize($ORIGINAL_FOLDER,"2.JPG",PHOTO_CROP_WIDTH,PHOTO_CROP_HEIGHT,$final_path); ***/ function getResize($path,$file_name,$width,$height,$final_path) { $fold_large=$path."/".$file_name; @chmod($fold_large,0777); $size = @getimagesize($fold_large);//300/293 if($size[0]<=$width && $size[1]<=$height) { //no operation//only upload @copy($fold_large, $final_path); $final =$final_path; } else { $this->resizenew($fold_large,$final_path,$width,$height); $final=$final_path; } @chmod($final,0777); return $final; } /***** //FOR RETURN FINAL IMAGE AFTER RESIZE AND CROP $final_path=FULLPATH WITH FILENAME IN WHICH CROPPED IMAGE WILL STORED $path= PATH WITHOUT FILENAME IN WHICH $file_name WAS STORED //SAMPLE=getCrop($ORIGINAL_FOLDER,"2.JPG",PHOTO_CROP_WIDTH,PHOTO_CROP_HEIGHT,$final_path); *****/ function getCropImage($path,$file_name,$width,$height,$final_path) { $system= substr(strrchr($file_name, "."), 1 ); if (preg_match('/bmp/',$system)) { $temp_path1=$path."/".$file_name; $temp_val="raj.png"; $temp_path2=$path."/".$temp_val; @chmod($temp_path1,0777); $ret=$this->imagecreatefrombmp($temp_path1,$temp_path2); @chmod($temp_path2,0777); $final_path= substr($final_path, 0, -3)."png"; } else { $temp_val=$file_name; } $image_new =$this->getCrop($path,$temp_val,$width,$height,$final_path); if (preg_match('/bmp/',$system)) { @unlink($temp_path2); } return $image_new; } /**** //FOR RETURN FINAL IMAGE AFTER RESIZE $final_path=FULLPATH WITH FILENAME IN WHICH CROPPED IMAGE WILL STORED $path= PATH WITHOUT FILENAME IN WHICH $file_name WAS STORED $file_name=ONLY FILENAME WHICH WAS STORED IN $path //SAMPLE=getResizeImage($ORIGINAL_FOLDER,"2.JPG",PHOTO_CROP_WIDTH,PHOTO_CROP_HEIGHT,$final_path); ***/ function getResizeImage($path,$file_name,$width,$height,$final_path) { $system= substr(strrchr($file_name, "."), 1 ); if (preg_match('/bmp/',$system)) { $temp_path1=$path."/".$file_name; $temp_val="raj.png"; $temp_path2=$path."/".$temp_val; @chmod($temp_path1,0777); $ret=$this->imagecreatefrombmp($temp_path1,$temp_path2); @chmod($temp_path2,0777); $final_path= substr($final_path, 0, -3)."png"; } else { $temp_val=$file_name; } $image_new =$this->getResize($path,$temp_val,$width,$height,$final_path); if (preg_match('/bmp/',$system)) { @unlink($temp_path2); } return $image_new; } //FOR DYNAMIC CREATE DIR UPLOAD FILES ON IT OBNE BY ONE//24/8 //RETURN TOTAL FILES IN GIVEN DIR function total_file($dir) { if ($dh = opendir($dir)) { $i=0; while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") { if($file!="Thumbs.db") $i++; } } closedir($dh); } return $i; } //RETURN TOTAL DIR FOR GIVEN FOLDER/DIR //FOLD IS EXCEPTIONAL FOLDER IN GIVEN DIR function total_dir($dir,$fold) { if ($dh = opendir($dir)) { $i=0; while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") { if($fold!="") { if (is_dir($dir."/".$file) && $file!=$fold) { $i++; } } else { if (is_dir($dir."/".$file)) { $i++; } } } } closedir($dh); } return $i; } //CREATE FOLDER NAMED DIR function create_folder($dir) { mkdir($dir); @chmod($dir,0777); } /***** //FOR DYNAMICALLY GENERATE FOLDER AND COPY IMAGE FILE IN IT $fold_path=FOLDER PATH WITHOUT FILENAME IN WHICH FOLDER STORED $max_file=HOW MUCH FILE WILL STORED IN THAT FOLDER $file_name=ONLY FILENAME THAT WILL STORED IN SOME FOLDER(FINAL FILENAME) NEW NAME OF FILE $temp_name=TEMP NAME OR FILENAME(ORIGINAL FILE)$_FILES['NAME']/$_FILES['TMP_NAME'] OR FULLPATH WITH FILENAME IN WHICH UPLOADED FILE WAS STORED $fold=EXTRA FOLDER WHICH IS LOCATED IN $fold_path //SAMPLE=increment_folder("var/html/www/wamba_ccc/picture",MAX_FILE,"1.JPG",temp_name/finalpath,images); ****/ function increment_folder($fold_path,$max_file,$file_name,$temp_name,$fold="") { $total_dir = $this->total_dir($fold_path,$fold); if($total_dir>0) { for($i=1;$i<=$total_dir;$i++) { $old_dir = $fold_path."/".$i; $new_dir= $fold_path."/".($i+1); if($this->total_file($old_dir)<$max_file) { @copy($temp_name,$old_dir."/".$file_name); $ret_val= $old_dir; } else { if(!is_dir($new_dir)) { $this->create_folder($new_dir); $ret_val= $this->increment_folder($fold_path,$max_file,$file_name,$temp_name,$fold); } } }//end for }//end if else { $new_dir=$fold_path."/"."1"; $this->create_folder($new_dir); $ret_val= $this->increment_folder($fold_path,$max_file,$file_name,$temp_name,$fold); }//END ELSE return $ret_val; }//END function increment_folder /* *START BMP SECTION *------------------------------------------------------------ * BMP Image functions *------------------------------------------------------------ */ /* *------------------------------------------------------------ * ImageBMP//for creatin new bmp files *------------------------------------------------------------ * - Creates new BMP file * * Parameters: $img - Target image * $file - Target file to store * - if not specified, bmp is returned * Returns: if $file specified - true if OK if $file not specified - image data */ function imagebmp($img,$file="",$RLE=0) { $ColorCount=imagecolorstotal($img); $Transparent=imagecolortransparent($img); $IsTransparent=$Transparent!=-1; if($IsTransparent) $ColorCount--; if($ColorCount==0) {$ColorCount=0; $BitCount=24;}; if(($ColorCount>0)and($ColorCount<=2)) {$ColorCount=2; $BitCount=1;}; if(($ColorCount>2)and($ColorCount<=16)) { $ColorCount=16; $BitCount=4;}; if(($ColorCount>16)and($ColorCount<=256)) { $ColorCount=0; $BitCount=8;}; $Width=imagesx($img); $Height=imagesy($img); $Zbytek=(4-($Width/(8/$BitCount))%4)%4; if($BitCount<24) $palsize=pow(2,$BitCount)*4; $size=(floor($Width/(8/$BitCount))+$Zbytek)*$Height+54; $size+=$palsize; $offset=54+$palsize; // Bitmap File Header $ret = 'BM'; // header (2b) $ret .= $this->int_to_dword($size); // size of file (4b) $ret .= $this->int_to_dword(0); // reserved (4b) $ret .= $this->int_to_dword($offset); // byte location in the file which is first byte of IMAGE (4b) // Bitmap Info Header $ret .= $this->int_to_dword(40); // Size of BITMAPINFOHEADER (4b) $ret .= $this->int_to_dword($Width); // width of bitmap (4b) $ret .= $this->int_to_dword($Height); // height of bitmap (4b) $ret .= $this->int_to_word(1); // biPlanes = 1 (2b) $ret .= $this->int_to_word($BitCount); // biBitCount = {1 (mono) or 4 (16 clr ) or 8 (256 clr) or 24 (16 Mil)} (2b) $ret .= $this->int_to_dword($RLE); // RLE COMPRESSION (4b) $ret .= $this->int_to_dword(0); // width x height (4b) $ret .= $this->int_to_dword(0); // biXPelsPerMeter (4b) $ret .= $this->int_to_dword(0); // biYPelsPerMeter (4b) $ret .= $this->int_to_dword(0); // Number of palettes used (4b) $ret .= $this->int_to_dword(0); // Number of important colour (4b) // image data $CC=$ColorCount; $sl1=strlen($ret); if($CC==0) $CC=256; if($BitCount<24) { $ColorTotal=imagecolorstotal($img); if($IsTransparent) $ColorTotal--; for($p=0;$p<$ColorTotal;$p++) { $color=imagecolorsforindex($img,$p); $ret.=$this->inttobyte($color["blue"]); $ret.=$this->inttobyte($color["green"]); $ret.=$this->inttobyte($color["red"]); $ret.=$this->inttobyte(0); //RESERVED }; $CT=$ColorTotal; for($p=$ColorTotal;$p<$CC;$p++) { $ret.=$this->inttobyte(0); $ret.=$this->inttobyte(0); $ret.=$this->inttobyte(0); $ret.=$this->inttobyte(0); //RESERVED }; }; if($BitCount<= { for($y=$Height-1;$y>=0;$y--) { $bWrite=""; for($x=0;$x<$Width;$x++) { $color=imagecolorat($img,$x,$y); $bWrite.=$this->decbinx($color,$BitCount); if(strlen($bWrite)== { $retd.=$this->inttobyte($this->bindec($bWrite)); $bWrite=""; }; }; if((strlen($bWrite)<8)and(strlen($bWrite)!=0)) { $sl=strlen($bWrite); for($t=0;$t<8-$sl;$t++) $sl.="0"; $retd.=$this->inttobyte($this->bindec($bWrite)); }; for($z=0;$z<$Zbytek;$z++) $retd.=$this->inttobyte(0); }; }; if(($RLE==1)and($BitCount==) { for($t=0;$t<strlen($retd);$t+=4) { if($t!=0) if(($t)%$Width==0) $ret.=chr(0).chr(0); if(($t+5)%$Width==0) { $ret.=chr(0).chr(5).substr($retd,$t,5).chr(0); $t+=1; } if(($t+6)%$Width==0) { $ret.=chr(0).chr(6).substr($retd,$t,6); $t+=2; } else { $ret.=chr(0).chr(4).substr($retd,$t,4); }; }; $ret.=chr(0).chr(1); } else { $ret.=$retd; }; if($BitCount==24) { for($z=0;$z<$Zbytek;$z++) $Dopl.=chr(0); for($y=$Height-1;$y>=0;$y--) { for($x=0;$x<$Width;$x++) { $color=imagecolorsforindex($img,ImageColorAt($img,$x,$y)); $ret.=chr($color["blue"]).chr($color["green"]).chr($color["red"]); } $ret.=$Dopl; }; }; if($file!="") { $r=($f=fopen($file,"w")); $r=$r and fwrite($f,$ret); $r=$r and fclose($f); return $r; } else { echo $ret; }; } //end function /* *------------------------------------------------------------ * ImageCreateFromBmp *------------------------------------------------------------ * - Reads image from a BMP file * Parameters: $file - Target file to load * Returns: Image ID */ function imagecreatefrombmp($file,$filename) { // global $this->CurrentBit, $echoMode; $f=fopen($file,"r"); $Header=fread($f,2); if($Header=="BM") { $Size=$this->freaddword($f); $Reserved1=$this->freadword($f); $Reserved2=$this->freadword($f); $FirstByteOfImage=$this->freaddword($f); $SizeBITMAPINFOHEADER=$this->freaddword($f); $Width=$this->freaddword($f); $Height=$this->freaddword($f); $biPlanes=$this->freadword($f); $biBitCount=$this->freadword($f); $RLECompression=$this->freaddword($f); $WidthxHeight=$this->freaddword($f); $biXPelsPerMeter=$this->freaddword($f); $biYPelsPerMeter=$this->freaddword($f); $NumberOfPalettesUsed=$this->freaddword($f); $NumberOfImportantColors=$this->freaddword($f); if($biBitCount<24) { $img=imagecreate($Width,$Height); $Colors=pow(2,$biBitCount); for($p=0;$p<$Colors;$p++) { $B=$this->freadbyte($f); $G=$this->freadbyte($f); $R=$this->freadbyte($f); $Reserved=$this->freadbyte($f); $Palette[]=imagecolorallocate($img,$R,$G,$B); }; if($RLECompression==0) { $Zbytek=(4-ceil(($Width/(8/$biBitCount)))%4)%4; for($y=$Height-1;$y>=0;$y--) { $this->CurrentBit=0; for($x=0;$x<$Width;$x++) { $C=$this->freadbits($f,$biBitCount); imagesetpixel($img,$x,$y,$Palette[$C]); }; if($this->CurrentBit!=0) {$this->freadbyte($f);}; for($g=0;$g<$Zbytek;$g++) $this->freadbyte($f); }; }; }; if($RLECompression==1) //$BI_RLE8 { $y=$Height; $pocetb=0; while(true) { $y--; $prefix=$this->freadbyte($f); $suffix=$this->freadbyte($f); $pocetb+=2; $echoit=false; if($echoit)echo "Prefix: $prefix Suffix: $suffix<BR>"; if(($prefix==0)and($suffix==1)) break; if(feof($f)) break; while(!(($prefix==0)and($suffix==0))) { if($prefix==0) { $pocet=$suffix; $Data.=fread($f,$pocet); $pocetb+=$pocet; if($pocetb%2==1) {$this->freadbyte($f); $pocetb++;}; }; if($prefix>0) { $pocet=$prefix; for($r=0;$r<$pocet;$r++) $Data.=chr($suffix); }; ?> Link to comment https://forums.phpfreaks.com/topic/84432-solved-error-please-help/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.