首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏叁金大数据

    C#中Image , Bitmap 和 BitmapData

    BitmapDataBitmapData对象指定了位图的属性 1. Height属性:被锁定位图的高度. 2. Width属性:被锁定位图的高度. 3. 盗张图,连接写在文章底部 先看看BitmapData的应用,我的场景是,我有一个一维像素点阵数组,里面放的是每个像素点的灰度值,知道宽和高,要转换成bitmap 1 ///

    2 Bitmap bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format8bppIndexed); 11 BitmapData posScan += offset; //行扫描结束,要将目标位置指针移过那段“间隙” 29 } 30 //// 用Marshal的Copy方法,将刚才得到的内存字节数组复制到BitmapData 19 20 System.Runtime.InteropServices.Marshal.Copy(iptr, mapdata, 0, scanBytes); //copy内存中数据到数组中 这里对与bitmapdata

    3.3K20发布于 2018-09-04
  • 来自专栏拂晓风起

    Flash:利用Bitmapdata,ColorTransform,DrawPath,制造绚丽效果

    JamesLi的文章:http://www.adobe.com/cn/devnet/actionscript/articles/silkflash-as.html 总结一下绚丽效果的核心: 1、利用一个Bitmapdata 3、利用bitmapdata.draw,把曲线不断绘制,并利用ColorTransform做一定的颜色和透明度变化。

    55620发布于 2018-07-03
  • 来自专栏拂晓风起

    Flash本地传递大数据,图片数据,localconnection 超出大小,超出限制 bitmapdata

    1、Localconnection Flash之间传递数据,自然想到Localconnection等多种办法。 但在实践中,如果要传一个图片这样的数据,就没这么简单了。 首先,localconnection一次send只能传递40k的数据,而且是它AMF编码后的,也就是说,自己最多也只能有30+K的余地。 针对这个限制,首先,我们想到拆分N份来发。 var size:int = 30*1024; var count:int = a.length / size + 1; var localCo

    95040发布于 2018-07-03
  • 来自专栏专业duilib使用+业余界面开发

    Gdiplus::Bitmap转HBITMAP与HBITMAP转Gdiplus::Bitmap

    bitmapData; dstBmp.LockBits(&rect , Gdiplus::ImageLockModeRead, dstBmp.GetPixelFormat(), &bitmapData ); memcpy(pBmpBits, (unsigned char*)bitmapData.Scan0, nCW * nCH * 4); dstBmp.UnlockBits(&bitmapData 1.通过GetBitmapBits()函数获取到HBITMAP的ARGB数据,然后通过 Gdiplus::BitmapData bitmapData; Gdiplus::Bitmap dstBmp(nCW , nCH); dstBmp.LockBits(&rect , Gdiplus::ImageLockModeWrite, Gdiplus::PixelFormat32bppARGB, &bitmapData ); memcpy((unsigned char*)bitmapData.Scan0, pBmpBits, nCW * nCH * 4); dstBmp.UnlockBits(&bitmapData);

    2.1K10发布于 2021-03-05
  • 来自专栏游戏杂谈

    as3的InteractivePNG例子

    地址在这里:http://www.shch8.com/blog/post/71.html 有demo可以下载(例子需要使用flash cs4+才能打开) 比较巧妙的是这一段核心代码: var bitmapData :BitmapData=new BitmapData(png_mc.width,png_mc.height,true,0x000000); bitmapData.draw(png_mc); //重绘图象到bitmapData //png_mc.graphics.beginFill(0,1); png_mc.graphics.beginBitmapFill (bitmapData); var _width:Number = bitmapData.width; var _height:Number = bitmapData.height :BitmapData = new BitmapData(mc.width, mc.height, true, 0); bitmapData.draw(imgObj

    71520发布于 2018-11-15
  • 来自专栏DearXuan的博客文章

    C# Bitmap图像处理加速

    BitmapDataBitmapData类专门用于位图处理,与Bitmap的不同点在于,它使用指针直接修改内存,而Bitmap是使用SetPixel()方法间接修改颜色,因此其效率远远超过SetPixel 的代码 private void Gray_BitmapData() { int width = bitmap.Width, height = bitmap.Height;//图片的宽度和高度 //在内存中以读写模式锁定Bitmap BitmapData bitmapData = bitmap.LockBits( new Rectangle(0, 0, width, height Marshal.Copy(srcArray, 0, ptr, size); //从内存中解锁 bitmap.UnlockBits(bitmapData); } 效率对比 代码 =" + (long)t1 + "\nTradition=" + (long)t2); } 图片信息 耗时 可以看到传统方法的耗时是使用BitmapData方法的106倍,需要整整14秒,而BitmapData

    1.6K20编辑于 2022-01-19
  • 来自专栏python3

    AS3性能优化

    ,这是可以的.但是从Flash Player方面来讲,Visible = false任然值得它去绘制,它比较笨.木有办法,那优化的方案就是,将其移出舞台了. 10,像素处理优化: 当绘制像素时,使用BitmapData  object  var myImage:BitmapData = new BitmapData ( wdth, hght, false );  var p_w_picpathContainer:Bitmap 在以下代码中,使用了 lock() 和 unlock() 方法来改进性能: var buffer:BitmapData = new BitmapData(200,200,true,0xFFFFFFFF) 类的 lock() 方法可以锁定图像,并防止引用该图像的对象在BitmapData 对象更改时进行更新。 例如,如果 Bitmap 对象引用BitmapData 对象,则可以锁定BitmapData 对象,对其更改后再解锁。在BitmapData 对象解锁之前, Bitmap 对象不会更改。

    1.1K10发布于 2020-01-10
  • 来自专栏python3

    AS3×××效果(鼠标点击-纯代码)

    var BitmapData0:BitmapData = new BitmapData(550, 400, false, 0x0); var Bitmap0:Bitmap = new Bitmap(BitmapData0 enter_frame); function enter_frame(evt:Event) {     for (var i:Number = 0; i<dotArr.length; i++) {         BitmapData0         if ((b1 || b2) && Math.random()>0.9) {             dotArr.splice(i,1);         }     }     BitmapData0 .applyFilter(BitmapData0.clone(),BitmapData0.rect,new Point(0, 0),cf); }

    77550发布于 2020-01-14
  • 来自专栏菩提树下的杨过

    As3.0中的位图(Bitmap/BitmapData)编程

    As3.0中的位图(Bitmap/BitmapData)编程功能十分丰富,下面这些是官方文档上的基本示例: 1.位图使用(模糊)滤镜 //创建一个矩形区域的BitmapData var bmd:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00 = new BitmapData(50, 50, true, 0xFF00FF99); var bmd2:BitmapData = new BitmapData(50, 50, true, 0x99AA3366 = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44 = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random

    1.9K60发布于 2018-01-22
  • 来自专栏菩提树下的杨过

    TweenLite的又一应用:图片的拼图加载效果

    关键:先加载一张完整的图片,然后利用BitmapData的copyPixels功能,把每个小块的像素copy出来,形成一系列新的BitmapData(也就是一块块小图片),然后再利用TweenLite让其依次 代码: package { import flash.display.Sprite; import flash.display.BitmapData; import flash.geom.Rectangle gs.TweenLite; import gs.easing.Back; public class ImageUp extends Sprite { var _originalImageData:BitmapData = 0,j:uint = 0; for (i=0; i<_rows; i++) { for (j=0; j<_cols; j++) { var _imgCell:BitmapData = new BitmapData(_w,_h); //关键:从原图中复制相应的小区域像素到imgCell中 _imgCell.copyPixels(_originalImageData

    84050发布于 2018-01-23
  • 来自专栏游戏杂谈

    AS3给图片加水印文字

    在点击“加水印”的按钮时,建立两个BitmapData,然后里面分别存放图片和需要添加的文字,之后将两个BitmapData转换为Bitmap添加至舞台,再转成一张新的Bitmap。 :BitmapData = (previewImg.source as Bitmap).bitmapData.clone(); 136: 137 : var imgByteArray:ByteArray = pngenc.encode(bitmapData); 138: :BitmapData = new BitmapData(loader.width, loader.height, true, 0x00FFFFFF); 152: var bitmap:Bitmap = new Bitmap(); 156: bitmap.bitmapData = bitmapData; 157

    85820发布于 2018-11-16
  • 来自专栏游戏杂谈

    as3+php上传图片的三种方式

    :BitmapData = new BitmapData(_loader.width, _loader.height, true, 0); bitmapData.draw :BitmapData = new BitmapData(_loader.width, _loader.height, true, 0); bitmapData.draw :BitmapData = new BitmapData(320,455,true,0); bitmapData.draw(photoEditContainer, _matrix = new BitmapData(320,455,true,0); bitmapData.draw(tempCan,_matrix); tempCan.rawChildren.removeChild(bt); bitmapData.dispose(); bitmapData = null

    1.9K40发布于 2018-11-15
  • 来自专栏游戏杂谈

    as3--简单的文字提示队列

    package 2: { 3: import flash.display.Bitmap; 4: import flash.display.BitmapData 47: var bmp:Bitmap = new Bitmap(); 48: var bmpData:BitmapData = new BitmapData(textField.width, textField.height, true, 0x00000000); 49: bmpData.draw (textField); 50: 51: bmp.bitmapData = bmpData; 52: var bmp:Bitmap = param_1.getChildAt(0) as Bitmap; 95: bmp.bitmapData.dispose

    79320发布于 2018-11-16
  • 来自专栏游戏杂谈

    as3加载外部资源

    ; trace(MyFlower + '--' + ApplicationDomain.currentDomain.hasDefinition('MyFlower')); var bmpData:BitmapData = new MyFlower(359, 629); var bmp:Bitmap = new Bitmap(); bmp.bitmapData = bmpData; bmp.x = 0; bmp.y import flash.system.ApplicationDomain; import flash.system.LoaderContext; import flash.display.BitmapData + ApplicationDomain.currentDomain.hasDefinition('MyFlower')); var bmpData:BitmapData = new MyFlower(359, 629); var bmp:Bitmap = new Bitmap(); bmp.bitmapData = bmpData

    1.3K40发布于 2018-11-16
  • 来自专栏游戏杂谈

    as3解析人物动作序列图

    这里以《神仙道》中某一人物资源为例子,它的每一个动作都经过了处理,以中心点为基准点(这样就不需要程序来控制偏移量了,否则程序要改变bitmapData时还需要改变bitmap的坐标)。 ? 2、分解动作 parseBitmapData(bmpData, 95, 118); private function parseBitmapData(bmpData:BitmapData, w:Number rectangle.height = h; var actionCount:int = 20; while (actionCount--) { var bmd:BitmapData = new BitmapData(rectangle.width, rectangle.height, true, 0); bmd.copyPixels(bmpData, rectangle actionIdx >= _actionList.length) { _actionIdx = 0; } _bmd.bitmapData

    55720发布于 2018-11-16
  • 来自专栏菩提树下的杨过

    Metaball(元球)效果学习

    } 接下来是如何运用: var sW:Number=stage.stageWidth;//舞台宽度 var sH:Number=stage.stageHeight;//舞台高度 var canvas:BitmapData =new BitmapData(sW,sH,false,0xff000000);//默认生成一个黑背景的BitmapData var rect:Rectangle=canvas.rect;//canvas b.original_radius) { b.y=b.original_radius; b.vy*=-1; } } canvas.dispose(); canvas = new BitmapData =new BitmapData(300,300,false,0); private const blur:BlurFilter=new BlurFilter(10,10,1); private =new BitmapData(sW,sH,false,0x00000000); var bitmap:Bitmap; var i:uint=0; var rect:Rectangle=new Rectangle

    2.5K100发布于 2018-01-22
  • 来自专栏RTSP/RTMP直播相关

    Windows平台RTMP播放器/RTSP播放器播放窗口添加OSD文字叠加

    g.DrawString(cur_time_str.c_str(), -1, &font, Gdiplus::PointF(r_left, r_top), &solid_brush); Gdiplus::BitmapData , &locked_bitmapData)) { auto buffer_size = locked_bitmapData.Stride * locked_bitmapData.Height; , locked_bitmapData.Height); logo_image->stride_ = locked_bitmapData.Stride; memcpy(buffer.get (), locked_bitmapData.Scan0, buffer_size); logo_image->data_.swap(buffer); } bitmap.UnlockBits (&locked_bitmapData); } return logo_image; } Windows平台RTMP播放器、RTSP播放器C# demo Windows平台C#的demo,添加了

    3K50发布于 2021-03-01
  • 来自专栏拂晓风起

    验证码去噪 分离背景 分离文字 最大类间方差

    最大类间方差: image.png 固定阀值: image.png public function getThresholdGrayValue(bitmapData:BitmapData): // 阈值 var step:int = 1; //生成直方图 for (var i:int = 0; i < bitmapData.width ; i++) { for (var j:int = 0; j < bitmapData.height; j++) { //返回各个点的颜色,以RGB表示 var color:uint = bitmapData.getPixel(i,j);

    96220发布于 2018-07-05
  • 来自专栏菩提树下的杨过

    Flash在线拍摄用户头象

    来对视频截图 3、在截图上,放一个方块允许用户手动调整位置,同时允许截图做缩放 4、用户调整完成后,对指定区域的BitmapData做copyPixes处理(即拷贝指定区域的像素) 5、将上一步得到的新 _video.height); } } function btnGet_Click(e:MouseEvent):void { var bmd:BitmapData = new BitmapData _bmp.bitmapData = bmd; } this._btnSave.enabled = true; this. _mask.height * ratio; //trace(ratio); var bmd:BitmapData = new BitmapData(imgWidth,imgHeight,false _bmp.bitmapData,new Rectangle((this._mask.x-260)*ratio,(this.

    1.3K80发布于 2018-01-23
  • 来自专栏阿林前端开发攻城狮

    iOS从背景图中取色的代码

    void *bitmapData; //内存空间的指针,该内存空间的大小等于图像使用RGB通道所占用的字节数。 计算整张图占用的字节数 colorSpace = CGColorSpaceCreateDeviceRGB();//创建依赖于设备的RGB通道 //分配足够容纳图片字节数的内存空间 bitmapData //创建CoreGraphic的图形上下文,该上下文描述了bitmaData指向的内存空间需要绘制的图像的一些绘制参数 context = CGBitmapContextCreate (bitmapData CreateRGBABitmapContext(img); CGRect rect = {{0,0},{size.width, size.height}}; //将目标图像绘制到指定的上下文,实际为上下文内的bitmapData

    1.3K20发布于 2021-10-29
领券