public function user_thumb($id, $img)
 {
     $img_path = avatar_dir($id);
     //会员头像规格
     $avatar_size = explode(',', C('pin_avatar_size'));
     $paths = C('pin_attach_path');
     foreach ($avatar_size as $size) {
         if ($paths . 'avatar/' . $img_path . '/' . md5($id) . '_' . $size . '.jpg') {
             @unlink($paths . 'avatar/' . $img_path . '/' . md5($id) . '_' . $size . '.jpg');
         }
         !is_dir($paths . 'avatar/' . $img_path) && mkdir($paths . 'avatar/' . $img_path, 0777, true);
         \Common\ORG\Image::thumb($paths . 'avatar/temp/' . $img, $paths . 'avatar/' . $img_path . '/' . md5($id) . '_' . $size . '.jpg', '', $size, $size, true);
     }
     @unlink($paths . 'avatar/temp/' . $img);
 }
 public function verify_code()
 {
     \Common\ORG\Image::buildImageVerify(4, 1, 'gif', '50', '24');
 }
Exemple #3
0
 /**
  * 生成UPC-A条形码
  * @static
  * @param string $type 图像格式
  * @param string $type 图像格式
  * @param string $lw  单元宽度
  * @param string $hi   条码高度
  * @return string
  */
 static function UPCA($code, $type = 'png', $lw = 2, $hi = 100)
 {
     static $Lencode = array('0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011');
     static $Rencode = array('1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100');
     $ends = '101';
     $center = '01010';
     /* UPC-A Must be 11 digits, we compute the checksum. */
     if (strlen($code) != 11) {
         die("UPC-A Must be 11 digits.");
     }
     /* Compute the EAN-13 Checksum digit */
     $ncode = '0' . $code;
     $even = 0;
     $odd = 0;
     for ($x = 0; $x < 12; $x++) {
         if ($x % 2) {
             $odd += $ncode[$x];
         } else {
             $even += $ncode[$x];
         }
     }
     $code .= (10 - ($odd * 3 + $even) % 10) % 10;
     /* Create the bar encoding using a binary string */
     $bars = $ends;
     $bars .= $Lencode[$code[0]];
     for ($x = 1; $x < 6; $x++) {
         $bars .= $Lencode[$code[$x]];
     }
     $bars .= $center;
     for ($x = 6; $x < 12; $x++) {
         $bars .= $Rencode[$code[$x]];
     }
     $bars .= $ends;
     /* Generate the Barcode Image */
     if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
         $im = imagecreatetruecolor($lw * 95 + 30, $hi + 30);
     } else {
         $im = imagecreate($lw * 95 + 30, $hi + 30);
     }
     $fg = ImageColorAllocate($im, 0, 0, 0);
     $bg = ImageColorAllocate($im, 255, 255, 255);
     ImageFilledRectangle($im, 0, 0, $lw * 95 + 30, $hi + 30, $bg);
     $shift = 10;
     for ($x = 0; $x < strlen($bars); $x++) {
         if ($x < 10 || $x >= 45 && $x < 50 || $x >= 85) {
             $sh = 10;
         } else {
             $sh = 0;
         }
         if ($bars[$x] == '1') {
             $color = $fg;
         } else {
             $color = $bg;
         }
         ImageFilledRectangle($im, $x * $lw + 15, 5, ($x + 1) * $lw + 14, $hi + 5 + $sh, $color);
     }
     /* Add the Human Readable Label */
     ImageString($im, 4, 5, $hi - 5, $code[0], $fg);
     for ($x = 0; $x < 5; $x++) {
         ImageString($im, 5, $lw * (13 + $x * 6) + 15, $hi + 5, $code[$x + 1], $fg);
         ImageString($im, 5, $lw * (53 + $x * 6) + 15, $hi + 5, $code[$x + 6], $fg);
     }
     ImageString($im, 4, $lw * 95 + 17, $hi - 5, $code[11], $fg);
     /* Output the Header and Content. */
     \Common\ORG\Image::output($im, $type);
 }
 /**
  * 上传一个文件
  * @access public
  * @param mixed $name 数据
  * @param string $value  数据表名
  * @return string
  */
 private function save($file)
 {
     $filename = $file['savepath'] . $file['savename'];
     if (!$this->uploadReplace && is_file($filename)) {
         // 不覆盖同名文件
         $this->error = '文件已经存在!' . $filename;
         return false;
     }
     // 如果是图像文件 检测文件格式
     if (in_array(strtolower($file['extension']), array('gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf')) && false === getimagesize($file['tmp_name'])) {
         $this->error = '非法图像文件';
         return false;
     }
     if (!move_uploaded_file($file['tmp_name'], $this->autoCharset($filename, 'utf-8', 'gbk'))) {
         $this->error = '文件上传保存错误!';
         return false;
     }
     chmod($this->autoCharset($filename, 'utf-8', 'gbk'), 0777);
     if ($this->thumb && in_array(strtolower($file['extension']), array('gif', 'jpg', 'jpeg', 'bmp', 'png'))) {
         $image = getimagesize($filename);
         if (false !== $image) {
             //是图像文件生成缩略图
             $thumbWidth = explode(',', $this->thumbMaxWidth);
             $thumbHeight = explode(',', $this->thumbMaxHeight);
             $thumbPrefix = explode(',', $this->thumbPrefix);
             $thumbSuffix = explode(',', $this->thumbSuffix);
             $thumbFile = explode(',', $this->thumbFile);
             $thumbPath = $this->thumbPath ? $this->thumbPath : dirname($filename) . '/';
             $thumbExt = $this->thumbExt ? $this->thumbExt : $file['extension'];
             //自定义缩略图扩展名
             // 生成图像缩略图
             import($this->imageClassPath);
             for ($i = 0, $len = count($thumbWidth); $i < $len; $i++) {
                 if (!empty($thumbFile[$i])) {
                     $thumbname = $thumbFile[$i];
                 } else {
                     $prefix = isset($thumbPrefix[$i]) ? $thumbPrefix[$i] : $thumbPrefix[0];
                     $suffix = isset($thumbSuffix[$i]) ? $thumbSuffix[$i] : $thumbSuffix[0];
                     $thumbname = $prefix . basename($filename, '.' . $file['extension']) . $suffix;
                 }
                 \Common\ORG\Image::thumb($filename, $thumbPath . $thumbname . '.' . $thumbExt, '', $thumbWidth[$i], $thumbHeight[$i], true);
             }
             if ($this->thumbRemoveOrigin) {
                 // 生成缩略图之后删除原图
                 unlink($filename);
             }
         }
     }
     if ($this->zipImags) {
         // TODO 对图片压缩包在线解压
     }
     return true;
 }
 protected function _uploadRemote($remote, $dir, $thumb)
 {
     $content = \Common\ORG\Http::fsockopenDownload($remote);
     $savePath = PIN_DATA_ROOT . C('pin_attach_path') . $dir;
     // 检查上传目录
     if (!is_dir($savePath)) {
         // 尝试创建目录
         $c = 0;
         while (!mkdir($savePath, 0777, true) && $c < 10) {
             $c++;
         }
         if (!is_dir($savePath)) {
             return array('error' => '上传目录' . $savePath . '不存在');
         }
     } else {
         if (!is_writeable($savePath)) {
             return array('error' => '上传目录' . $savePath . '不可写');
         }
     }
     if (empty($content)) {
         return array('error' => '无法下载远程文件');
     }
     $fname = uniqid();
     $tf = rtrim(sys_get_temp_dir(), '/') . '/' . $fname;
     file_put_contents($tf, $content);
     switch (exif_imagetype($tf)) {
         case IMAGETYPE_GIF:
             rename($tf, $savePath . $fname . '.gif');
             $fname .= '.gif';
             $fext = '.gif';
             break;
         case IMAGETYPE_JPEG:
             rename($tf, $savePath . $fname . '.jpg');
             $fname .= '.jpg';
             $fext = '.jpg';
             break;
         case IMAGETYPE_PNG:
             rename($tf, $savePath . $fname . '.png');
             $fname .= '.png';
             $fext = '.png';
             break;
         case IMAGETYPE_BMP:
             rename($tf, $savePath . $fname . '.bmp');
             $fname .= '.bmp';
             $fext = '.bmp';
             break;
         default:
             rename($tf, $savePath . $fname);
             $fext = '';
             break;
     }
     $filename = $savePath . $fname;
     import('ORG.Util.Image');
     $thumbWidth = explode(',', $thumb['width']);
     $thumbHeight = explode(',', $thumb['height']);
     $thumbPrefix = explode(',', '');
     $thumbSuffix = explode(',', $thumb['suffix']);
     $thumbPath = $savePath;
     $thumbExt = $fext;
     //自定义缩略图扩展名
     for ($i = 0, $len = count($thumbWidth); $i < $len; $i++) {
         $prefix = isset($thumbPrefix[$i]) ? $thumbPrefix[$i] : $thumbPrefix[0];
         $suffix = isset($thumbSuffix[$i]) ? $thumbSuffix[$i] : $thumbSuffix[0];
         $thumbname = $prefix . basename($filename, $fext) . $suffix;
         \Common\ORG\Image::thumb($filename, $thumbPath . $thumbname . $thumbExt, '', $thumbWidth[$i], $thumbHeight[$i], true);
     }
     return array('savename' => $fname);
 }