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'); }
/** * 生成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); }