189 8069 5689

html5上传头像,html选择文件上传头像代码

PHP、HTML5上传图片自动压缩问题

给你个图片处理的类吧,图片剪裁处理后,也就等于将图片压缩了。

创新互联公司是一家专业提供宜良企业网站建设,专注与成都做网站、网站建设、成都h5网站建设、小程序制作等业务。10年已为宜良众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

/**

* 图像处理类

* ============================================================================

* Copyright 2014 大秦科技,并保留所有权利。

* 网站地址: ;

* ============================================================================

*/

class Image{

//生成缩略图的方式

public $thumbType;

//缩略图的宽度

public $thumbWidth;

//缩略图的高度

public $thumbHeight;

//生成缩略图文件名后缀

public $thumbEndFix;

//缩略图文件前缀

public $thumbPreFix;

/**

* 构造函数

*/

public function __construct(){

$this-thumbType = 1;

$this-thumbWidth = 120;

$this-thumbHeight = 60;

$this-thumbPreFix ='';

$this-thumbEndFix =  '_thumb';

}

/**

* 检测是否为图像文件

* @param $img 图像

* @return bool

*/

private function check($img){

$type = array(".jpg", ".jpeg", ".png", ".gif");

$imgType = strtolower(strrchr($img, '.'));

return extension_loaded('gd')  file_exists($img)  in_array($imgType, $type);

}

/**

* 获得缩略图的尺寸信息

* @param $imgWidth 原图宽度

* @param $imgHeight 原图高度

* @param $thumbWidth 缩略图宽度

* @param $thumbHeight 缩略图的高度

* @param $thumbType 处理方式

* 1 固定宽度  高度自增 2固定高度  宽度自增 3固定宽度  高度裁切

* 4 固定高度 宽度裁切 5缩放最大边 原图不裁切

* @return mixed

*/

private function thumbSize($imgWidth, $imgHeight, $thumbWidth, $thumbHeight, $thumbType){

//初始化缩略图尺寸

$w = $thumbWidth;

$h = $thumbHeight;

//初始化原图尺寸

$cuthumbWidth = $imgWidth;

$cuthumbHeight = $imgHeight;

switch ($thumbType) {

case 1 :

//固定宽度  高度自增

$h = $thumbWidth / $imgWidth * $imgHeight;

break;

case 2 :

//固定高度  宽度自增

$w = $thumbHeight / $imgHeight * $imgWidth;

break;

case 3 :

//固定宽度  高度裁切

$cuthumbHeight = $imgWidth / $thumbWidth * $thumbHeight;

break;

case 4 :

//固定高度  宽度裁切

$cuthumbWidth = $imgHeight / $thumbHeight * $thumbWidth;

break;

case 5 :

//缩放最大边 原图不裁切

if (($imgWidth / $thumbWidth)  ($imgHeight / $thumbHeight)) {

$h = $thumbWidth / $imgWidth * $imgHeight;

} elseif (($imgWidth / $thumbWidth)  ($imgHeight / $thumbHeight)) {

$w = $thumbHeight / $imgHeight * $imgWidth;

} else {

$w = $thumbWidth;

$h = $thumbHeight;

}

break;

default:

//缩略图尺寸不变,自动裁切图片

if (($imgHeight / $thumbHeight)  ($imgWidth / $thumbWidth)) {

$cuthumbWidth = $imgHeight / $thumbHeight * $thumbWidth;

} elseif (($imgHeight / $thumbHeight)  ($imgWidth / $thumbWidth)) {

$cuthumbHeight = $imgWidth / $thumbWidth * $thumbHeight;

}

//            }

}

$arr [0] = $w;

$arr [1] = $h;

$arr [2] = $cuthumbWidth;

$arr [3] = $cuthumbHeight;

return $arr;

}

/**

* 图片裁切处理

* @param $img 原图

* @param string $outFile 另存文件名

* @param string $thumbWidth 缩略图宽度

* @param string $thumbHeight 缩略图高度

* @param string $thumbType 裁切图片的方式

* 1 固定宽度  高度自增 2固定高度  宽度自增 3固定宽度  高度裁切

* 4 固定高度 宽度裁切 5缩放最大边 原图不裁切 6缩略图尺寸不变,自动裁切最大边

* @return bool|string

*/

public function thumb($img, $outFile = '', $thumbWidth = '', $thumbHeight = '', $thumbType = ''){

if (!$this-check($img)) {

return false;

}

//基础配置

$thumbType = $thumbType ? $thumbType : $this-thumbType;

$thumbWidth = $thumbWidth ? $thumbWidth : $this-thumbWidth;

$thumbHeight = $thumbHeight ? $thumbHeight : $this-thumbHeight;

//获得图像信息

$imgInfo = getimagesize($img);

$imgWidth = $imgInfo [0];

$imgHeight = $imgInfo [1];

$imgType = image_type_to_extension($imgInfo [2]);

//获得相关尺寸

$thumb_size = $this-thumbSize($imgWidth, $imgHeight, $thumbWidth, $thumbHeight, $thumbType);

//原始图像资源

$func = "imagecreatefrom" . substr($imgType, 1);

$resImg = $func($img);

//缩略图的资源

if ($imgType == '.gif') {

$res_thumb = imagecreate($thumb_size [0], $thumb_size [1]);

$color = imagecolorallocate($res_thumb, 255, 0, 0);

} else {

$res_thumb = imagecreatetruecolor($thumb_size [0], $thumb_size [1]);

imagealphablending($res_thumb, false); //关闭混色

imagesavealpha($res_thumb, true); //储存透明通道

}

//绘制缩略图X

if (function_exists("imagecopyresampled")) {

imagecopyresampled($res_thumb, $resImg, 0, 0, 0, 0, $thumb_size [0], $thumb_size [1], $thumb_size [2], $thumb_size [3]);

} else {

imagecopyresized($res_thumb, $resImg, 0, 0, 0, 0, $thumb_size [0], $thumb_size [1], $thumb_size [2], $thumb_size [3]);

}

//处理透明色

if ($imgType == '.gif') {

imagecolortransparent($res_thumb, $color);

}

//配置输出文件名

$imgInfo = pathinfo($img);

$outFile = $outFile ? $outFile :dirname($img).'/'. $this-thumbPreFix . $imgInfo['filename'] . $this-thumbEndFix . "." . $imgInfo['extension'];

Files::create(dirname($outFile));

$func = "image" . substr($imgType, 1);

$func($res_thumb, $outFile);

if (isset($resImg))

imagedestroy($resImg);

if (isset($res_thumb))

imagedestroy($res_thumb);

return $outFile;

}

}

html5+js怎么实现手机头像上传,可裁剪

抱歉 这个已经不属于HTML+JS的内容了。

最常用的是.NET和PHP,这两个都有现成的模版可以下载。

APP和HTML5有啥区别?

APP和HTML5有啥区别:

1.html5的app比较轻巧,原生态app如比较正规,html5实现的功能有限,只能实现一些轻型的交互场景,而app则可以完美解决。

2.html5虽然可以跨平台,可是浏览器有个加载速度,对于用户体验上说,有个加载的等待,就比如你用qq浏览器打开百度,和直接使用百度app是两种体验。浏览器打开百度,还得有个加载,而百度app则duang的出下了输入框界面。

3.html5的app对于导航来说,目前有个弊端。而原生态app则在页底固定悬浮着导航菜单。

4.html5 app也有自己的优势,比如有的app页面想要分享出来,则采用html5 app。也比如滴滴打车集成在微信里一样,如果手机中没有滴滴打车的app,则直接可以在默认浏览器上加载出来,进行打车。

html5 app在设计时需要注意的一些要点:

1)各手机浏览器的兼容测试

2)底层服务的调取(能调取,但只有当其是核心功能时才保留 eg:新浪、美团等皆去掉了头像上传功能)

3)注意离线数据存储,减少数据请求频率。

4)考虑保存用户的哪些数据:设置、个人数据、阅读锚点、跳出页面等。【这点一般说的就是导航菜单】

5)避免动效与浏览器的交互冲突

6)按顺序 异步加载


文章名称:html5上传头像,html选择文件上传头像代码
分享链接:http://jkwzsj.com/article/dsdejdo.html

其他资讯