`

[心得] BitmapData PerlinNoise 效果调试

XML 
阅读更多
今天看看了BitmapData的perlinNoise参数比较多,为了更好的理解各个参数的意义所以就写了个简单调试的例子,
以下是源码,有兴趣的可以看下。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                           xmlns:s="library://ns.adobe.com/flex/spark" 
                           xmlns:mx="library://ns.adobe.com/flex/mx"
                           width="740" height="450"
                           creationComplete="callLater(init)">
        <fx:Script>
                <![CDATA[
                        private var bitmapData:BitmapData;
                        private var bitmap:Bitmap;
                        private function init():void{
                                bitmapData = new BitmapData(400,448);
                                bitmap = new Bitmap(bitmapData);
                                content.addChild(bitmap);
                                changeBitmap();
                        }
                        public function changeBitmap():void{
                                var channelOptions:uint=0;
                                if(red.selected){
                                        channelOptions = BitmapDataChannel.RED;
                                }
                                if(blue.selected){
                                        if(channelOptions != 0)
                                                channelOptions = channelOptions | BitmapDataChannel.BLUE;
                                        else
                                                channelOptions = BitmapDataChannel.BLUE;
                                }
                                if(green.selected){
                                        if(channelOptions != 0)
                                                channelOptions = channelOptions | BitmapDataChannel.GREEN;
                                        else
                                                channelOptions = BitmapDataChannel.GREEN;
                                }
                                if(alphas.selected){
                                        if(channelOptions != 0)
                                                channelOptions = channelOptions | BitmapDataChannel.ALPHA;
                                        else
                                                channelOptions = BitmapDataChannel.ALPHA;
                                }
                                var offset:Array;
                                if(useOffset.selected && textArea.text !=''){
                                        offset = [];
                                        var arr:Array = textArea.text.split("|");
                                        for(var i:int=0;i<arr.length;i++){
                                                if(arr[i]!=''){
                                                        var s:Array = arr[i].split(',');
                                                        var point:Point=new Point();
                                                        point.x=s[0];
                                                        point.y=s.length==2?s[1]:0;
                                                        offset.push(point);
                                                } 
                                        }
                                }
                                bitmapData.perlinNoise(400,448,numOctaves.value,randomSeed.value,stitch.selected,fractalNoise.selected,channelOptions,grayScale.selected,offset);
                        }
                ]]>
        </fx:Script>        
        <s:HGroup width="740" height="450">
                <mx:UIComponent id="content" width="400" height="448"/>
                <s:Form width="334" height="448" backgroundColor="0xcccccc">
                        <s:FormItem label="numOctaves">
                                <s:HSlider id="numOctaves" value="6" change="changeBitmap()" maximum="20" minimum="0"/>
                        </s:FormItem>
                        <s:FormItem label="randomSeed">
                                <s:HSlider id="randomSeed" value="10" change="changeBitmap()" maximum="100" minimum="0"/>
                        </s:FormItem>
                        <s:FormItem label="stitch">
                                <s:CheckBox id="stitch" selected="true" click="changeBitmap()"/>
                        </s:FormItem>
                        <s:FormItem label="fractalNoise"> 
                                <s:CheckBox id="fractalNoise"  selected="true" click="changeBitmap()"/>
                        </s:FormItem>
                        <s:FormItem label="channelOptions">
                                <s:CheckBox id="red" label="red" selected="true" click="changeBitmap()"/>
                                <s:CheckBox id="green" label="green" selected="true" click="changeBitmap()"/>
                                <s:CheckBox id="blue" label="blue" click="changeBitmap()"/>
                                <s:CheckBox id="alphas" label="alpha" click="changeBitmap()"/>
                        </s:FormItem>
                        <s:FormItem label="grayScale">
                                <s:CheckBox id="grayScale" click="changeBitmap()"/>
                        </s:FormItem>
                        <s:FormItem label="userOffset">
                                <s:CheckBox id="useOffset" selected="true" click="changeBitmap()"/>
                                <s:TextArea id="textArea" text="0,10|0,20" restrict="0-9|," 
                                                        change="changeBitmap()" height="50" enabled="{useOffset.selected}"/>
                        </s:FormItem>
                </s:Form>
        </s:HGroup>
</s:Application>
分享到:
评论

相关推荐

    BitmapData.draw方法

    - `blendMode`:可选参数,定义了源对象和目标BitmapData之间的混合模式,可以创建各种视觉效果。 - `smoothing`:可选参数,如果为true,将使绘制的图像变得平滑,适用于放大图像时防止锯齿。 这个方法可以用于...

    ActionScript 3 BitmapData 的例子

    综上所述,BitmapData是ActionScript 3中一个强大而灵活的工具,它使开发者能够直接操作图像像素,从而实现各种复杂的视觉效果和图像处理功能。通过理解和实践这些示例,你将能够更好地掌握ActionScript 3中位图处理...

    [转] BitmapData 基础部分2

    BitmapData是ActionScript 3(AS3)中的一个核心类,它是处理像素数据的主要工具,广泛应用于游戏开发、图像处理和动画制作等场景。在AS3中,BitmapData类允许我们创建、读取、修改和操作位图数据,这些位图数据可以...

    [心得] draw的技巧,说说BitmapData(附源码)

    这篇心得分享了关于使用BitmapData的一些高级技巧,以及如何利用它来提升图形绘制的效率和效果。BitmapData对象允许我们直接操作像素级别的数据,进行图像处理和绘图操作。 首先,BitmapData提供了创建、读取和修改...

    使用C#的BitmapData

    在C#中,`BitmapData`类是用于高效地访问和操作位图图像像素的核心类。这个类在处理大量像素操作时尤其有用,因为它允许直接访问图像数据的内存缓冲区,而无需通过昂贵的属性访问。`BitmapData`提供了一种优化的方法...

    BitmapData.zip

    这些函数可以直接作用于 BitmapData 对象,以实现各种视觉效果或分析任务。例如,模糊处理可以用于降低图像细节,提高对比度则可以突出图像的边缘和特征。 4. **性能优化**: "很好用!!!" 这一描述暗示 ...

    位图噪声效果BitmapData类的运用

    BitmapData类实例 运用噪声制作一些好的效果 源码

    delphi 找图找色 BitmapData.pas

    delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/

    BitmapData.pas和kbKernel.pas

    BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...

    Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar

    这个压缩包"Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar"显然包含了关于如何在AS3中使用BitmapData的CopyPixel方法来创建或修改位图的示例和教程。 BitmapData对象是AS3中表示位图图像的数据结构,它可以...

    BitmapData_for_EaselJS:用于EaselJS的BitmapData将AS3(例如BitmapData)添加到EaselJS

    EaselJS的位图数据EaselJS的BitmapData将AS3(例如BitmapData)添加到EaselJS。例1 // create BitmapData by HTMLImageElement_bmd01 = new createjs.BitmapData(HTMLImageElement);_bitmap01 = new createjs.Bitmap...

    as2.0amlabfire.zip_BitmapData_True Blue

    as2.0 模拟火焰 import flash.display.*...var blueSpot: BitmapData = new BitmapData( clipBounds.xMax, clipBounds.yMax, true, 0 ) blueSpot.draw( blueSpotClip, new Matrix() ) blueSpotClip.removeMovieClip()

    SWT中的bitmapdata,和自己封装的image工具类

    BitmapData是SWT库中一个关键的类,它用于处理位图数据,允许开发者直接操作图像的像素。在这个主题中,我们将深入探讨BitmapData以及如何与自定义的Image工具类配合使用。 BitmapData类提供了对图像数据的低级别...

    王者找图对比程序.rar_BitmapData.pas_delphi 找图_对比找图_王找找图_王者找图对比程序

    王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!

    flash as3 擦窗户效果+回放

    擦窗户效果通常基于 BitmapData 类来实现。BitmapData 是AS3中的一个类,它允许我们直接操作像素,进行像素级别的绘图和编辑。 1. **创建BitmapData对象**:首先,你需要创建一个BitmapData对象,它将代表你的"窗户...

    flash制作红旗图片飘动效果实例.docx

    这里运用了`perlinNoise`方法来生成一种模拟风的随机波动效果,然后使用`DisplacementMapFilter`滤镜将这个波动应用到红旗的BitmapData上,模拟出旗子随风飘动的样子。滤镜参数如`pointX`和`pointY`决定了图像的位移...

    Flex拍照并上传到java后台——未调试成功

    标题中的“Flex拍照并上传到java后台——未调试成功”表明这是一个关于使用Adobe Flex技术进行拍照功能实现,并将拍摄的照片上传到Java后端服务器的项目,但目前该项目可能在调试阶段遇到了问题。Flex是一种用于创建...

    as3 bimapdata 波浪效果

    总之,AS3中的波浪效果利用BitmapData和图像扭曲算法实现,通过加载外部图档并对其进行动态处理,可以在舞台上呈现出栩栩如生的波浪动画。通过对压缩包中的源代码进行研究和实践,你可以深化对AS3和图像处理的理解,...

    Flex 放大镜效果

    要理解并实现这个放大镜效果,你需要对Flex的组件模型、事件处理和图形绘制有深入的了解,并能够阅读和调试ActionScript代码。如果你遇到任何问题,可以参考Flex的官方文档或者在线教程来获取帮助。

    flash打造光晕与光斑效果

    对于光斑,可以使用BitmapData类来操作像素,通过在特定位置增加亮度,达到聚焦光斑的效果。首先,你需要创建一个BitmapData对象,然后使用draw()方法复制你要添加光斑的对象到BitmapData上。接下来,使用lockBits()...

Global site tag (gtag.js) - Google Analytics