调用图片的页面:

require_once('thumbs.php');//调用缩略图的类文件

//3 手机推荐

$nestedRows= $Download->getDownotherList("0",

"2","(RECMDLEVEL='4' or RECMDLEVEL='5')AND SMALLPICSERVERNAME!=''

AND CATALOGID=DOWNLOAD_NODEID and FULLNODEID like

'%191%'","DOWNLOADID DESC");

$i = 0;

if(is_array($nestedRows)&&sizeof($nestedRows)>0)

{

foreach($nestedRows

as $rowmobiletj)

{

$tbxdownId = $rowmobiletj['DOWNLOADID'];

$HtmlUrl = $rowmobiletj['HTMLURL'];

$tbxdownTitles = $rowmobiletj['DOWNLOADTITLE'];

$tbxdownImages =

$rowmobiletj['SMALLPICSERVERNAME'];

$tbxaddtime = $rowmobiletj['ADDTIME'];

$tbxdownTitle = $Func->ShortWrite($tbxdownTitles,16);

$table["rowmobiletj"][$i]["tbxdownTitle"] = "

title='".$tbxdownTitles."'

target='_blank'>".$tbxdownTitle."

";

$table["rowmobiletj"][$i]["HtmlUrl"] = $HtmlUrl;

$table["rowmobiletj"][$i]["tbxdownTitles"] = $tbxdownTitles;

$srcFile =

"attach/download_smallpic/".date('Y',$tbxaddtime)."/".date('m',$tbxaddtime)."/".date('d',$tbxaddtime)."/".$tbxdownImages;

$image = explode('.',$tbxdownImages);

$dstFile

=

"attach/tmp/thumbs6_2_".$image[0].".jpg";//缩略图名称存放的位置

if(!file_exists($dstFile)){

makeThumb($srcFile,

$dstFile, "100px", "70px", $option=OP_TO_FILE,

$cutmode=CM_MIDDLE);//生成缩略图的方法

}

$table["rowmobiletj"][$i]["tbxUrl"] = $dstFile;

$i++;

}//end

foreach

}

?>

//引用的类'thumbs.php'

/**

* 可扩展的缩略图生成函数

* 在http://yodoo.com的论坛里可以获得最新版本(注册用户)

* 演示效果也请登录http://yodoo.com看看,该站所有的缩略图(jpg,png)都是使用该函数生成的

*

* 转载请保留完整信息

*

* @author Austin Chin http://yodoo.com

* @version $Revision: 1.7 $

*

*

* version

*

* + 表示增加的功能

* - 表示丢弃的功能

* C 表示修正的功能

* E 表示扩展了功能

*

* v1.5

* makeThumb($srcFile, $dstFile, $dstW, $dstH, $option=1)

*

* v1.6

* + 增加了剪切模式

* + $option 8: 宽度最佳缩放

* + $option 16: 高度最佳缩放

* makeThumb($srcFile, $dstFile, $dstW, $dstH, $option=1,

$cutmode=0, $startX=0,

* $startY=0)

*

* v1.7

* E 返回值改为数组,第一个元素是代码 0 表示正常,

其它位错误代码;第二个元素是错误描述。

* 错误代码:

* -1 源文件不存在。

* -2 不支持的图片输出函数

* -3 不支持的图片创建函数

* -4 HTTP头信息已经输出,无法向浏览器输出图片。

* -5 无法检测输出的图片类型

* + 增加函数 message2Image 可以把字符串输出成图片格式

*/

/**

* 可扩展的缩略图生成函数

*

* @param string $srcFile 源文件

* @param string $srcFile 目标文件

* @param int $dstW 目标图片的宽度(单位:像素)

* @param int $dstH 目标图片的高度(单位:像素)

* @param int $option 附加参数,可以相加使用,如1+2(或者

1|2)表示同时执行1和2的功能。

* 1: 默认,输出到指定文件 2: 图片内容输出到浏览器 4:

不保持图片比例

* 8:宽度最佳缩放 16:高度最佳缩放

* @param int $cutmode 剪切模式 0: 默认模式,剪切模式 1: 左或上

2: 中 3: 右或下

* @param int $startX 剪切的起始横坐标(像素)

* @param int $startY 剪切的起始纵坐标(像素)

* @return array return[0]=0: 正常; return[0] 为错误代码

return[1] string: 错误描述

*/

define(OP_TO_FILE,

1); //输出到指定文件

define(OP_OUTPUT,

2); //图片内容输出到浏览器

define(OP_NOT_KEEP_SCALE,

4); //不保持图片比例, 即使用拉伸

define(OP_BEST_RESIZE_WIDTH,

8); //宽度最佳缩放

define(OP_BEST_RESIZE_HEIGHT, 16); //高度最佳缩放

define(CM_DEFAULT, 0); // 默认模式

define(CM_LEFT_OR_TOP, 1); // 左或上

define(CM_MIDDLE, 2); // 中

define(CM_RIGHT_OR_BOTTOM, 3); // 右或下

$srcFile = $_GET['picurl'];

$id =

intval($_GET['id']);

$dstFile = "test.gif";

switch ($id) {

case

1:

makeThumb($srcFile, $dstFile, "86px", "63px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//flash、动漫推荐

break;

case

2:

makeThumb($srcFile, $dstFile, "90px", "70px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//桌面主题

case

3:

makeThumb($srcFile, $dstFile, "132px", "94px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//游戏推荐

break;

case

4:

makeThumb($srcFile, $dstFile, "137px", "96px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//今日推荐

case

5:

makeThumb($srcFile, $dstFile, "100px", "140px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//手机主题

break;

case

6:

makeThumb($srcFile, $dstFile, "100px", "70px", $option=OP_OUTPUT,

$cutmode=CM_MIDDLE);//java游戏

break;

}

function makeThumb($srcFile, $dstFile, $dstW, $dstH,

$option=OP_TO_FILE, $cutmode=CM_DEFAULT, $startX=0, $startY=0)

{

$img_type = array(1=>"gif", 2=>"jpeg", 3=>"png");

$type_idx = array("gif"=>1, "jpg"=>2, "jpeg"=>2,

"jpe"=>2, "png"=>3);

if

(!file_exists($srcFile)) {

return array(-1, "Source file not exists: $srcFile.");

}

$path_parts = @pathinfo($dstFile);

$ext =

strtolower ($path_parts["extension"]);

if

($ext == "") {

return array(-5, "Can't detect output image's type.");

}

$func_output = "image" . $img_type[$type_idx[$ext]];

if

(!function_exists ($func_output)) {

return array(-2, "Function not exists for

output:$func_output.");

}

$data =

@GetImageSize($srcFile);

$func_create = "imagecreatefrom" . $img_type[$data[2]];

if

(!function_exists ($func_create)) {

return array(-3, "Function not exists for

create:$func_create.");

}

$im =

@$func_create($srcFile);

$srcW =

@ImageSX($im);

$srcH =

@ImageSY($im);

$srcX =

0;

$srcY =

0;

$dstX =

0;

$dstY =

0;

if

($option & OP_BEST_RESIZE_WIDTH) {

$dstH = round($dstW * $srcH / $srcW);

}

if

($option & OP_BEST_RESIZE_HEIGHT) {

$dstW = round($dstH * $srcW / $srcH);

}

$fdstW

= $dstW;

$fdstH

= $dstH;

if

($cutmode != CM_DEFAULT) { // 剪切模式 1: 左或上 2: 中 3:

右或下

$srcW -= $startX;

$srcH -= $startY;

if ($srcW*$dstH > $srcH*$dstW) {

$testW = round($dstW * $srcH / $dstH);

$testH = $srcH;

} else {

$testH = round($dstH * $srcW / $dstW);

$testW = $srcW;

}

switch ($cutmode) {

case CM_LEFT_OR_TOP: $srcX = 0; $srcY = 0; break;

case CM_MIDDLE: $srcX = round(($srcW - $testW) / 2);

$srcY = round(($srcH - $testH) / 2); break;

case CM_RIGHT_OR_BOTTOM: $srcX = $srcW - $testW;

$srcY = $srcH - $testH;

}

$srcW = $testW;

$srcH = $testH;

$srcX += $startX;

$srcY += $startY;

} else

{ // 原始缩放

if (!($option & OP_NOT_KEEP_SCALE)) {

// 以下代码计算新大小,并保持图片比例

if ($srcW*$dstH>$srcH*$dstW) {

$fdstH=round($srcH*$dstW/$srcW);

$dstY=floor(($dstH-$fdstH)/2);

$fdstW=$dstW;

} else {

$fdstW=round($srcW*$dstH/$srcH);

$dstX=floor(($dstW-$fdstW)/2);

$fdstH=$dstH;

}

$dstX=($dstX<0)?0:$dstX;

$dstY=($dstX<0)?0:$dstY;

$dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX;

$dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY;

}

} ///

end if ($cutmode != CM_DEFAULT) { // 剪切模式

if(

function_exists("imagecopyresampled") and

function_exists("imagecreatetruecolor") ){

$func_create = "imagecreatetruecolor";

$func_resize = "imagecopyresampled";

} else

{

$func_create = "imagecreate";

$func_resize = "imagecopyresized";

}

$newim

= @$func_create($dstW,$dstH);

$black

= @ImageColorAllocate($newim, 0,0,0);

$back =

@imagecolortransparent($newim, $black);

@imagefilledrectangle($newim,0,0,$dstW,$dstH,$black);

@$func_resize($newim,$im,$dstX,$dstY,$srcX,$srcY,$fdstW,$fdstH,$srcW,$srcH);

if

($option & OP_TO_FILE) {

@$func_output($newim,$dstFile);

}

if

($option & OP_OUTPUT) {

if (function_exists("headers_sent")) {

if (headers_sent()) {

return array(-4, "HTTP already sent, can't output image to

browser.");

}

}

header("Content-type: image/" . $img_type[$type_idx[$ext]]);

@$func_output($newim);

}

@imagedestroy($im);

@imagedestroy($newim);

return

array(0, "OK");

}

?>

java 生成缩略图并返回字节数组_关于提取后台图片数据时自动生成缩略图程序...相关推荐

  1. java实现读取文件返回字节数组

    java实现读取文件的内容返回字节数组 1.代码如下所示: public class FileUtil {/*** 方法功能:读取文件内容返回字节流 * @param String fname* @r ...

  2. mysql查询数据时自动生成序号

    写法一 SET @rownum = 0; SELECT @rownum := @rownum +1 AS rownum ,v.id ,v.create_time FROM vehiclegas v O ...

  3. java插件开发_编写一个IDEA插件之:自动生成Java代码

    我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...

  4. 怎么样把Java的字符串转化为字节数组?

    问题:怎么样把Java的字符串转化为字节数组 有没有任何方法把Java的字符串转化为字节数组 我尝试这样: System.out.println(response.split("\r\n\r ...

  5. movelast对数据记录数有要求吗_客户验厂,电脑坏了,考勤记录数据可以自动生成找回来吗?...

    客户验厂 ,电脑坏了 考勤记录数据可以自动生成找回来吗?工厂验厂 之前考勤记录找不到了,可以自动生成考勤记录和工资数据吗? 工厂电脑突然坏了,好烦啊 重庆江津区的一家工厂的考勤操作人员张小姐,最近碰到 ...

  6. plsql导入数据主键_使用plsql添加数据并自动生成主键

    使用plsql添加数据并自动生成主键 步骤如下: 步骤一:新建需要创建的表如: -- Create table create table IRC_SYS_DATADIC ( datadic_id VA ...

  7. android studio 自动生成sql语句,Android Studio Plugin 插件开发教程(三) —— 制作一个自动生成数据库代码的插件...

    项目源码 系列教程 插件介绍 本篇实战撸个自动生成安卓Sqlite数据库代码的插件,先演示下最终效果 db文件夹下的都是插件自动生成的,而MainActivity里面的代码是我提前写好的,用于实验插件 ...

  8. matplotlib-bilibili,抖音很火的动态数据视频自动生成(第四节)-视频,语音合成

    " matplotlib-bilibili,抖音很火的动态数据视频自动生成(第四节)-视频,语音自动合成" 还记得上一节中我们所提到的数据动态视频吗​?这次,为了让大家更加方便的制 ...

  9. 安装Ruby、Sass在WebStrom添加Watcher实现编辑scss文件时自动生成.map和压缩后的.css文件...

    前言 这段时间一直在看Bootstrap,V3官方直接提供了Less版本的源码,就先将Less学完了,很简单的语法,学习写Demo都是在Webstorm里写的,配置了Watcher自动编译(详见< ...

最新文章

  1. 小而美的个人博客——前端——types and archives
  2. /sbin/ifup: configuration for eth0 not found解决
  3. WPF 表格控件 ReoGrid 的简单使用
  4. android 歌曲剪辑 原理,在Android上,我该如何制作怪异的剪辑区域?
  5. 谨慎设计方法签名(40)
  6. Android系统中用C语言来编写服务程序并且开机自启动运行服务
  7. Python多人聊天室
  8. 8天玩转并行开发——第二天 Task的使用
  9. cad计算机试题及答案,CAD考试试题库及参考答案整理版.doc
  10. 在线生成 html 页面,细说在线版H5页面生成器
  11. APS计划排产软件在食品饮料行业的应用
  12. 工具分享:pycharm-2019.1_windows正版最新(附下载链接)
  13. python_获取两个数,打印中间值
  14. 固有的不可移植的特征之volatile限定符
  15. 基于Halcon的MLP(多层感知神经网络)分类器分类操作实例
  16. 《奇葩说》詹青云:熬过那些日子,你才有资格过不被人左右的人生
  17. uft自动化测试工具安装步骤_你需要了解的自动化测试框架知识
  18. iphone6 6p纯代码适配
  19. 探寻职业教育中的人工智能技术
  20. java求线性回归置信区间,逻辑回归预测的置信区间

热门文章

  1. ASN.1概述及数据类型详解
  2. 云计算数据中心系列 【服务器篇】 视频课程(硬件精讲 + 项目实战)-夏杰-专题视频课程...
  3. python计算两个日期的天数计算多少岁
  4. 古今群侠传java,【古今群侠传官网版】古今群侠传最新官网版下载_66游戏网
  5. An error occurred while loading navigation: Invalid UTF-8 string in BSON document的问题解决
  6. 中国工商银行牡丹交通卡的办理网点
  7. 自己电脑(ThinkPad SL410K 28428VC)硬件信息记录
  8. 开源丨CloudBase CMS 内容管理系统!简单易用企业内容管理流
  9. 数据库字段为什么要使用NOT NULL
  10. 学计算机vr月薪多少,【招生季】数字展示技术(VR方向)专业---月薪过万的专业,赶紧PICK吧!...