最近一直在弄Flex,其中有一个功能就是缩略图,缩略图的场景是:有一个Canvas的容器,这个容器中有很多的显示对象,实现该容器的一个缩略图。(注意:该Canvas容器只显示了一部分,其他部分需要移动滚动条才能看到)
方法一(借助ImageSnapshot.captureBitmapData方法):
1、计算出Canvas中所有显示对象右下角的最大X坐标和最大的Y坐标(_maxX,_maxY):
var point:Point = caculateMaxPoint(canvas);//canvas为需要缩略的Canvas容器。caculateMaxPoint方法计算该容器中显示对象的X,Y最大的点。
var _maxX:Number = point.x ;
var _maxY:Number = point.y ;
2、将Canvas的width和height分别设置为_maxX和_maxY:
canvas.width = _maxX;
canvas.height = _maxY;
注意: 这一步非常重要,如果没有这个设置,那么使用ImageSnapShot.caputreBitmapData方法获取到的只是Canvas容器当前显示的部分,而不能获取到所有的显示对象。
3、计算缩略的比例:
var matrix : Matrix = new Matrix();
matrix.scale(width/_maxX , height / _maxY);//其中width和height是缩略图所存放容器的宽度和高度。
4、获取Canvas容器的BitmapData数据:
var bitmapData:BitmapData = ImageSnapShot.captureBitmapData(canvas , matrix);
var bitMap:BitMap = new BitMap(bitmapData);
5、将4步骤中生成的bitMap作为缩略图容器的中<mx:Image>的source。这样Canvas容器的缩略图就出来了。
6、最后将Canvas容器的width和height恢复为初始的宽度和高度。
7、当然还有缩略图和原图之间的联动,我是通过缩略图的坐标按照缩放的比例找出原图的坐标,并定位滚动条的位置,这里就不描述了。
我使用这个方法时遇到的一个问题:使用ImageSnapShot.captureBitmapData(canvas , matrix)时,会对原图缩小然后拍下快照,再将原图恢复。这个过程一般情况下客户是看不到的,但是如果频繁调用这个方法,会导致如果原图出现缩小,然后恢复的过程,这样就影响到原图的效果,目前没有找到解决方法。
方法二(只是思路):使用COPY 的方法,在Canvas 容器中添加一个属性thumbNailCanvas,它是Canvas 容器的一个复制,任何对Canvas容器的改变,同时也改变thumbNailCanvas。
分享到:
相关推荐
在JavaScript编程中,实现一个带有缩略图的图片切换效果并配备控制按钮是一项常见的需求,尤其是在网站设计和用户界面开发中。这样的功能可以为用户提供更好的交互体验,让他们更轻松地浏览一组图片。以下是对这个...
在“带缩略图的图片切换广告”这一应用场景中,Flex FLV播放器不仅作为视频播放工具,还集成了图片轮播功能,用于展示一系列缩略图。这种设计常见于网站侧边栏或内容区域,用于吸引用户的注意力并展示广告或产品信息...
预览功能则是在用户选择图片之后,能够在不实际上传的情况下显示图片的缩略图或全尺寸图像。这需要用到Flash Player的本地权限,允许读取用户选择的文件,并利用BitmapData类将图片数据转换为可显示的位图。预览功能...
要使用ArcGIS API for Flex实现鹰眼图,我们首先需要在项目中引入必要的库文件,如`esri.map`、`esri.geometry`和`esri.views`等。这些库提供了地图创建、几何对象处理以及视图操作等功能。 接下来,创建主地图和...
在网页设计中,实现用户点击缩略图后弹出大图的功能是一项常见的需求,尤其是在展示图片集或产品细节时。本教程将详细讲解如何利用jQuery库来实现这一功能,尤其适用于DataList等数据展示组件。 首先,理解jQuery库...
在本文中,我们将深入探讨如何使用Adobe Flex技术创建一个具有图片切换功能的广告组件,并结合XML配置文件实现缩略图展示。Flex是一种基于ActionScript 3.0的开放源代码框架,用于构建富互联网应用程序(RIA)。它...
在Flex Air开发过程中,开发者通常会创建这样的项目来验证文件管理功能的实现,例如测试文件的打开、保存、复制、移动等操作,以及文件树和缩略图视图的正确显示。 总的来说,Flex Air通过集成Air runtime,提供了...
4. **CSS 样式**:Flexslider 提供了一套基本的 CSS 样式,但可能需要根据项目需求进行调整,例如更改滑动条样式、缩略图位置等。通过修改 `.flexslider`、`.flex-direction-nav`、`.flex-control-nav` 等类,可以...
"js 图片切换 箭头 缩略图 大图" 是一个基于JavaScript实现的图片轮播功能,它具备箭头导航、缩略图预览以及大图显示等功能。下面我们将详细探讨这一主题。 首先,`index.html` 是网页的主体文件,它包含了HTML结构...
我们需要为缩略图和预览区添加样式,以实现美观的布局和过渡效果。你可以设定缩略图的大小,预览区的位置,以及图片切换时的动画效果。例如: ```css #thumbnail-container { display: flex; flex-wrap: wrap; } ...
本文将深入解析jQuery Flexslider插件的基本原理、使用方法以及如何实现缩略图功能。 一、jQuery Flexslider 插件简介 jQuery Flexslider 是由 Woothemes 开发的一款免费且开源的 jQuery 图片轮播插件。它以其高度...
缩略图的生成通常是通过截取原图的一部分或者按比例缩小来实现的,既节省空间又不影响视觉效果。 3. 预览功能:用户可以通过双击图片缩略图来查看大图,这提供了更清晰的视图,有助于检查图片的质量和细节。预览...
在本文中,我们将深入探讨如何使用jQuery实现一个类似于微博中的缩略图点击放大功能。这个功能常见于许多社交网络和图像展示平台,它允许用户在不离开页面的情况下查看高分辨率的大图。通过学习和应用这些知识,你...
实现鹰眼视图需要额外的布局管理以及缩略图的生成。 6. **性能优化**:对于大尺寸图片,直接加载和处理可能会导致性能问题。可以采用分块加载或懒加载策略,只加载当前可视区域的图片部分,提高应用的响应速度。 7...
为了实现缩略图布局,可以使用CSS3的`display: flex`或`grid`布局,让图片自动适应不同的屏幕尺寸和设备。这确保了在不同设备上的良好响应性。同时,利用媒体查询(`media queries`)可以针对不同分辨率和设备进行样式...
在本文中,我们将深入探讨如何使用jQuery实现一种常见的网页元素——缩略图广告效果。jQuery是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务,使得开发者可以更加高效地创建动态和交互式...
《使用jQuery实现带左侧缩略图的图片切换效果》 在网页设计中,动态的图片切换效果能够极大地提升用户体验,特别是在展示产品或分享图像信息时。jQuery作为一个强大的JavaScript库,提供了丰富的API和便利的语法,...
此外,CSS还可以用于定义元素的布局,如使用`display: flex`或`grid`来排列缩略图。 HTML5提供了新的标签和特性,增强了网页的结构和功能。例如,`<figure>`和`<figcaption>`标签可以用来组织图像和相关的描述文本...
此外,为了实现缩略图的竖向排列,可以使用CSS的`display: flex`或者`display: grid`布局。这些现代布局方式能够方便地控制元素的排列方式和间距。 ```css .thumbnail-container { display: flex; flex-direction...
通过flex as3.0实现了图片预览功能,代码简洁,容易理解