标题“模拟QQ心情图片上传预览示例”与描述表明,文档详细讨论了如何在Web应用中实现类似于腾讯QQ心情状态发布框中的图片上传与预览功能。尽管目前JavaScript不支持直接获取本地图片进行预览,但文档中提供了几种实现该功能的jquery插件,并详细说明了各自的特点和使用场景。下面将从文档内容中提炼相关知识点。 介绍HTML5之前实现图片上传预览的技术方案,文档提到的主要有以下两种方法: 1. 使用jQueryFileUpload插件。这是blueimp推出的一款支持异步上传图片的jQuery插件,具有良好的可控性。用户可以根据自己的需求定制图片上传的流程,但由于浏览器兼容性问题,例如在IE9中不支持本地图片预览和多文件选择,因此可能会有所限制。 2. 使用SWFUpload插件。SWFUpload使用Flash结合JavaScript实现,具有广泛的浏览器兼容性,支持批量上传、进度条、删除文件等功能,并且可以自定义按钮和样式。SWFUpload在实现上传预览时,通常是先将图片上传至服务器,然后再返回地址进行预览,这被认为是较为靠谱的图片预览方法,尤其适用于HTML5尚未普及的环境。 文档还讨论了如何生成缩略图,提到等比例缩放后截取中间区域作为缩略图,这与QQ空间的做法类似。但文档指出,QQ空间的图片上传功能还加入了人脸识别技术,这一点在文档所讨论的实现中并未包含。生成缩略图的过程涉及到了图片处理方面的知识,包括如何计算缩放比例,以及如何处理图片的尺寸和比例。 示例代码中提到的Thumbnail类负责生成缩略图。该类包含一个GetThumbnail方法,需要传入原图、新宽度、新高度和一个布尔值(指示是否需要裁剪)。该方法首先计算等比例缩放后的尺寸,然后创建一个新的Bitmap实例并用Graphics对象将其绘制出来。如果指定了裁剪参数,则裁剪出原图中心点对应的区域。 总结以上知识点: 1. 图片上传预览技术:文档中提到了两种实现图片上传预览的技术方案,一种是利用jQueryFileUpload插件实现图片的异步上传,但存在兼容性问题;另一种是使用SWFUpload插件,通过Flash技术提升浏览器的兼容性。 2. 缩略图生成技术:通过计算原图与目标尺寸的比例,实现等比例缩放,并可选择是否进行裁剪,最终生成符合要求的缩略图。 3. 兼容性考虑:在实现类似QQ心情图片上传这样的功能时,需要考虑到不同浏览器的兼容性问题,尤其是老版本的IE浏览器。 4. 安全性考虑:直接在客户端获取本地图片存在安全风险,所以需要将图片上传到服务器端进行处理。 5. Flash技术应用:文档提到SWFUpload插件采用Flash技术来实现与旧版浏览器的兼容,但在现代Web开发中,由于HTML5技术的发展和Flash的逐步淘汰,这种做法可能需要重新评估。 6. 代码实践:文档中给出的Thumbnail类代码是一个具体的实现示例,它展示了如何在服务器端处理图片缩放和裁剪,以及生成缩略图的过程。 通过这些知识点,可以深入理解在Web前端开发中,如何实现图片的上传与预览功能,并解决跨浏览器兼容性问题。同时,也提供了对于在不同浏览器和平台环境下实现前端功能的思考。
- 粉丝: 5
- 资源: 981
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助