Example #1
0
 function ckgif()
 {
     require_once R_P . 'lib/gif.class.php';
     $trueframe = mt_rand(1, 9);
     $im = $this->background();
     imagepng($im);
     imagedestroy($im);
     $bg = ob_get_contents();
     ob_clean();
     for ($i = 0; $i <= 9; $i++) {
         $im = imagecreatefromstring($bg);
         $this->style & 32 && $this->disturbimg($im);
         $x[$i] = $y[$i] = 0;
         if ($i == $trueframe) {
             $this->style & 1 || $this->gdtype == 2 ? $this->ttffont($im) : $this->imgfont($im);
             $d[$i] = mt_rand(250, 400);
         } else {
             $this->disturbcode($im);
             $d[$i] = mt_rand(5, 15);
         }
         imagegif($im);
         imagedestroy($im);
         $frame[$i] = ob_get_contents();
         ob_clean();
     }
     $anim = new GIFEncoder($frame, $d, 0, 0, 0, 0, 0, 'bin');
     header('Content-type: image/gif');
     echo $anim->getAnimation();
 }
Example #2
0
 function ckgif()
 {
     L::loadClass('gif', 'utility', false);
     $trueframe = mt_rand(1, 9);
     $im = $this->background();
     imagepng($im);
     imagedestroy($im);
     $bg = ob_get_contents();
     ob_clean();
     for ($i = 0; $i <= 9; $i++) {
         $im = imagecreatefromstring($bg);
         $this->disturbImg && $this->_disturbimg($im);
         $x[$i] = $y[$i] = 0;
         if ($i == $trueframe) {
             if ($this->codes) {
                 $this->fontRandomFamily ? $this->ttffont($im) : $this->imgfont($im);
             }
             $d[$i] = mt_rand(250, 400);
         } else {
             $this->_disturbcode($im);
             $d[$i] = mt_rand(5, 15);
         }
         imagegif($im);
         imagedestroy($im);
         $frame[$i] = ob_get_contents();
         ob_clean();
     }
     $anim = new GIFEncoder($frame, $d, 0, 0, 0, 0, 0, 'bin');
     header('Content-type: image/gif');
     echo $anim->getAnimation();
 }
Example #3
0
 		}*/
 list($img_w, $img_h) = getimagesize($middleFile);
 $smallFile = PwUpload::savePath($db_ifftp, $filename, $smallDir);
 $s_ifthumb = 0;
 PwUpload::createFolder(dirname($smallFile));
 if ($ext == 'gif') {
     L::loadClass('gifdecoder', 'utility', false);
     L::loadClass('gif', 'utility', false);
     $gifDecoder = new GIFDecoder($data);
     $frames = $gifDecoder->GIFGetFrames();
     if (!empty($frames)) {
         foreach ($frames as $key => $value) {
             $frames[$key] = makeAvatarGifThumb($value, $img_w, $img_h, 48, 48);
         }
         $anime = new GIFEncoder($frames, $gifDecoder->GIFGetDelays(), $gifDecoder->GIFGetLoop(), $gifDecoder->GIFGetDisposal(), $gifDecoder->GIFGetTransparentR(), $gifDecoder->GIFGetTransparentG(), $gifDecoder->GIFGetTransparentB(), 'bin');
         $newGifData = $anime->getAnimation();
         PwUpload::createFolder(dirname($smallFile));
         pwCache::writeover($smallFile, $newGifData);
         $s_ifthumb = 1;
     }
 } elseif (MakeThumb($middleFile, $smallFile, 48, 48)) {
     $s_ifthumb = 1;
 }
 if ($db_ifftp) {
     //PwUpload::movetoftp($normalFile, $normalDir . "{$winduid}.$ext");
     PwUpload::movetoftp($middleFile, $middleDir . $filename);
     $s_ifthumb && PwUpload::movetoftp($smallFile, $smallDir . $filename);
 }
 pwFtpClose($GLOBALS['ftp']);
 $user_a = explode('|', $winddb['icon']);
 $user_a[2] = $img_w;
Example #4
0
 function updateIcon($uid)
 {
     global $atc_attachment_name, $db_ifftp;
     $uid = intval($uid);
     if ($uid < 1 || !S::isArray($_FILES)) {
         return $this->buildResponse(USER_INVALID_PARAMS);
     }
     ACloud_Sys_Core_Common::setGlobal('customized_current_uid', $uid);
     $user = $this->getCurrentUser();
     if (!$user->isLogin()) {
         return $this->buildResponse(USER_NOT_LOGIN);
     }
     $ext = strtolower(substr(strrchr($_FILES['icon']['name'], '.'), 1));
     L::loadClass('faceupload', 'upload', false);
     $face = new FaceUpload($user->uid);
     $icondb = PwUpload::upload($face);
     require_once R_P . 'require/showimg.php';
     $udir = str_pad(substr($user->uid, -2), 2, '0', STR_PAD_LEFT);
     if (!in_array(strtolower($ext), array('gif', 'jpg', 'jpeg', 'png', 'bmp'))) {
         return $this->buildResponse(USER_UPLOAD_CONTENT_ERROR);
     }
     $filename = "{$user->uid}.{$ext}";
     $sourceFilename = "{$user->uid}_tmp.{$ext}";
     $sourceDir = "upload/{$udir}/";
     $middleDir = "upload/middle/{$udir}/";
     $smallDir = "upload/small/{$udir}/";
     $img_w = $img_h = 0;
     $sourceFile = PwUpload::savePath($db_ifftp, $sourceFilename, $sourceDir);
     $middleFile = PwUpload::savePath($db_ifftp, $filename, $middleDir);
     PwUpload::createFolder(dirname($middleFile));
     PwUpload::movefile($sourceFile, $middleFile);
     require_once R_P . 'require/imgfunc.php';
     if (!($img_size = GetImgSize($middleFile))) {
         P_unlink($middleFile);
         return $this->buildResponse(USER_UPLOAD_CONTENT_ERROR);
     }
     list($img_w, $img_h) = getimagesize($middleFile);
     $smallFile = PwUpload::savePath($db_ifftp, $filename, $smallDir);
     $s_ifthumb = 0;
     PwUpload::createFolder(dirname($smallFile));
     if ($ext == 'gif') {
         L::loadClass('gifdecoder', 'utility', false);
         L::loadClass('gif', 'utility', false);
         $gifDecoder = new GIFDecoder($data);
         $frames = $gifDecoder->GIFGetFrames();
         if (!empty($frames)) {
             foreach ($frames as $key => $value) {
                 $frames[$key] = makeAvatarGifThumb($value, $img_w, $img_h, 48, 48);
             }
             $anime = new GIFEncoder($frames, $gifDecoder->GIFGetDelays(), $gifDecoder->GIFGetLoop(), $gifDecoder->GIFGetDisposal(), $gifDecoder->GIFGetTransparentR(), $gifDecoder->GIFGetTransparentG(), $gifDecoder->GIFGetTransparentB(), 'bin');
             $newGifData = $anime->getAnimation();
             PwUpload::createFolder(dirname($smallFile));
             writeover($smallFile, $newGifData);
             $s_ifthumb = 1;
         }
     } elseif (MakeThumb($middleFile, $smallFile, 48, 48)) {
         $s_ifthumb = 1;
     }
     if ($db_ifftp) {
         PwUpload::movetoftp($middleFile, $middleDir . $filename);
         $s_ifthumb && PwUpload::movetoftp($smallFile, $smallDir . $filename);
     }
     $user_a = explode('|', $user->icon);
     $user_a[2] = $img_w;
     $user_a[3] = $img_h;
     $usericon = setIcon("{$udir}/{$user->uid}.{$ext}", 3, $user_a);
     $userService = L::loadClass('UserService', 'user');
     /* @var $userService PW_UserService */
     $userService->update($user->uid, array('icon' => $usericon));
     list($iconurl) = showfacedesign($usericon, 1, 's');
     return $this->buildResponse(0, array('icon' => $iconurl));
 }
Example #5
0
 /**
  * Resize the animated gif's by splitting it to frames, and resizing each frame.
  * @param $width
  * @param $height
  * @param $newfile
  * @return array
  */
 function _resizeAnimatedGif($width, $height, $newfile = NULL)
 {
     // jimport('joomla.filesystem.file');
     $libDir = JPATH_ROOT . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'mint' . DIRECTORY_SEPARATOR . 'image_processing';
     require_once $libDir . DIRECTORY_SEPARATOR . 'GIFDecoder.class.php';
     require_once $libDir . DIRECTORY_SEPARATOR . 'GIFEncoder.class.php';
     // Create gif decoder.
     // $gifDecoder = new GIFDecoder(JFile::read($this->imgFile));
     $gifDecoder = new GIFDecoder(file_get_contents($this->imgFile));
     // Write the frames to disk.
     $files = array();
     foreach ($gifDecoder->GIFGetFrames() as $k => $frame) {
         // store the current frame to disk.
         // $filename = JPath::clean($this->tempDir. DIRECTORY_SEPARATOR .uniqid('resize_', true));
         $img = imagecreatefromstring($frame);
         $newimg = @imagecreatetruecolor($width, $height);
         if ($this->transparentGif) {
             $colorcount = imagecolorstotal($img);
             if ($colorcount == 0) {
                 $colorcount = 256;
             }
             imagetruecolortopalette($newimg, true, $colorcount);
             imagepalettecopy($newimg, $img);
             $transparentcolor = imagecolortransparent($img);
             imagefill($newimg, 0, 0, $transparentcolor);
             imagecolortransparent($newimg, $transparentcolor);
         }
         @imagecopyresampled($newimg, $img, 0, 0, 0, 0, $width, $height, $this->imgWidth, $this->imgHeight);
         // take care about border :)
         if (is_resource($this->_border)) {
             @imagecopyresampled($newimg, $this->_border, 0, 0, 0, 0, $width, $height, imagesx($this->_border), imagesy($this->_border));
         }
         ob_start();
         imagegif($newimg);
         $files[] = ob_get_clean();
         // free some memory
         @imagedestroy($newimg);
         @imagedestroy($img);
         unset($frame);
         unset($gifDecoder->GIF_arrays[$k]);
     }
     // Create encoder
     $gifEncoder = new GIFEncoder($files, $gifDecoder->GIFGetDelays(), $gifDecoder->GIFGetLoop(), $gifDecoder->GIFGetDisposal(), $gifDecoder->GIFGetTransparentR(), $gifDecoder->GIFGetTransparentG(), $gifDecoder->GIFGetTransparentB(), 'bin');
     unset($gifDecoder);
     foreach ($files as $f) {
         @unlink($f);
     }
     if (!empty($newfile)) {
         //JFile::write($newfile, $gifEncoder->getAnimation());
         file_put_contents($newfile, $gifEncoder->getAnimation());
     } else {
         @header("Content-type: image/gif");
         echo $gifEncoder->getAnimation();
     }
 }