bitmap

Redis中bitmap的妙用

北城以北 提交于 2020-04-06 16:41:34
在Redis中我们经常用到set,get等命令,细心的你有没有发现,还有几个相似的命令叫setbit,getbit,它们是用来干嘛的? BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间。 Redis中的BitMap Redis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没有新增新的数据类型,因为setbit等命令只不过是在set上的扩展。 setbit命令介绍 指令 SETBIT key offset value 复杂度 O(1) 设置或者清空key的value(字符串)在offset处的bit值(只能0或者1)。 空间占用、以及第一次分配空间需要的时间 在一台2010MacBook Pro上,offset为2^32-1(分配512MB)需要~300ms,offset为2^30-1(分配128MB)需要~80ms,offset为2^28-1(分配32MB)需要~30ms,offset为2^26-1(分配8MB)需要8ms。<来自官方文档> 大概的空间占用计算公式是:($offset/8/1024/1024)MB 使用场景一:用户签到 很多网站都提供了签到功能

Drawable和Bitmap的区别

喜欢而已 提交于 2020-04-06 06:01:33
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。 Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。 A bitmap is a Drawable. A Drawable is not necessarily a bitmap. Like all thumbs are fingers but not all fingers are thumbs. Bitmap是Drawable . Drawable不一定是Bitmap .就像拇指是指头,但不是所有的指头都是拇指一样. The API dictates: API规定: Though usually not visible to the application, Drawables may take a variety of forms: 尽管通常情况下对于应用是不可见的,Drawables 可以采取很多形式: Bitmap: the simplest Drawable, a PNG or JPEG image. Bitmap: 简单化的Drawable

抓取网页为图片

可紊 提交于 2020-04-06 05:51:34
论坛的提问贴,有实用价值: http://topic.csdn.net/u/20071009/10/ee7b6234-2c8b-4eeb-9b13-199f09d22303.html using System; using System.Data; using System.Windows.Forms; using System.Drawing; /// <summary> /// WebSnap :网页抓图对象 /// </summary> public class WebSnap { public WebSnap() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 开始一个抓图并返回图象 /// </summary> /// <param name="Url"> 要抓取的网页地址 </param> /// <returns></returns> public Bitmap StartSnap( string Url) { WebBrowser myWB = this .GetPage(Url); Bitmap returnValue = this .SnapWeb(myWB); myWB.Dispose(); return returnValue; } private WebBrowser GetPage( string Url

Drawable和Bitmap区别

空扰寡人 提交于 2020-04-06 03:01:23
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。 Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。 A bitmap is a Drawable. A Drawable is not necessarily a bitmap. Like all thumbs are fingers but not all fingers are thumbs. Bitmap是Drawable . Drawable不一定是Bitmap .就像拇指是指头,但不是所有的指头都是拇指一样. The API dictates: API规定: Though usually not visible to the application, Drawables may take a variety of forms: 尽管通常情况下对于应用是不可见的,Drawables 可以采取很多形式: Bitmap: the simplest Drawable, a PNG or JPEG image. Bitmap: 简单化的Drawable

android 游戏导引(4. 简单纹理贴图)

爷,独闯天下 提交于 2020-04-04 18:49:05
这一节主要讲述 opengl 的贴图技术,涉及了简单的纹理知识。临近放年假,忙啊。 源码下载: 点我吧 Table of Contents 1 纹理 Texture 1.1 纹理坐标 和 纹理映射 1.2 opengl 中启用纹理映射功能 1.3 创建纹理 1.4 指定纹理 1.5 删除纹理 1.6 绑定纹理 1.7 设置过滤器 1.8 纹理映射 2 常见的几个问题 2.1 贴图呈现白色 2.2 图像扭曲 3 代码实现 4 贴图一个机器人 1 纹理 Texture 纹理定义了物体表面的结构,如花纹,图案,皱纹等等。有了纹理,模型世界才会更加丰富多彩。如一个球形模型,我们给其映射足球的纹理,这就是一个足球,给其映射地球纹理,就是一个地球。另外,如果给一个四边形映射一个墙的纹理,这边是墙,否则,我们需要一块砖一块砖的构建在本节中,我们所指的是狭义的纹理: 图像纹理(对应的有函数纹理—用数学函数来定义的纹理)。 纹理实际上是一个二维数组,其元素是一些颜色值,每一元素称之为纹理像素 (texel)。 纹理对象是一个内部数据类型,存储着纹理数据。你不能直接访问纹理对象,但是可以通过一个整数的 ID 来作为其句柄跟踪之。通过此句柄,你可以作为当前使用的纹理(称之为纹理绑定),也可以从内存中删除这个纹理对象,还可以为一的纹理赋值(将一些纹理数据加载到关联的纹理中,称之为指定纹理)。

android内存优化大全_中

浪子不回头ぞ 提交于 2020-04-01 06:25:17
转载请注明本文出自大苞米的博客( http://blog.csdn.net/a396901990 ),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读。(本文最后我会尽量列出所参考的文章)。 OOM: 内存泄露可以引发很多的问题: 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.莫名消失(当你的程序所占内存越大,它在后台的时候就越可能被干掉。反之内存占用越小,在后台存在的时间就越长) 3.直接崩溃(OutOfMemoryError) ANDROID内存面临的问题: 1.有限的堆内存,原始只有16M 2.内存大小消耗等根据设备,操作系统等级,屏幕尺寸的不同而不同 3.程序不能直接控制 4.支持后台多任务处理(multitasking) 5.运行在虚拟机之上 5R: 本文主要通过如下的5R方法来对ANDROID内存进行优化: 1.Reckon(计算) 首先需要知道你的app所消耗内存的情况,知己知彼才能百战不殆 2.Reduce(减少) 消耗更少的资源 3.Reuse(重用) 当第一次使用完以后

C# Bitmap类型与Byte[]类型相互转化

萝らか妹 提交于 2020-03-31 08:34:48
Bitmap => byte[] Bitmap b = new Bitmap( "test.bmp "); MemoryStream ms = new MemoryStream(); b.Save(ms,System.Drawing.Imaging.ImageFormat.Bmp); byte[] bytes = ms.GetBuffer();//byte[] bytes = ms.ToArray(); 这两句都可以,至于区别么,下面有解释 ms.Close(); byte[] => Bitmap byte[] bytelist=bytes; MemoryStream ms1 = new MemoryStream(bytelist); Bitmap bm = (Bitmap)Image.FromStream(ms1); ms1.Close(); 1、因为如果不用Bmp的方式转换字节的话,在转换到字节的时候将会丢失数据; 2、MemoryStream的GetBuffer并不是得到这个流所存储的内容,而是返回这个流的基础字节数组,可能包括在扩充的时候一些没有使用到的字节。 如果用了MemoryStream,就不能说效果差不多。因为我用java重新开发了MemoryStream这个类,所以象这样的并且应该注意的问题基本上都很清楚,其中GetBuffer就是

Android中文API(136) —— Bitmap

烈酒焚心 提交于 2020-03-26 05:14:23
前言   本章内容android.graphics.Bitmap章节,译为"位图",版本为Android 4.0 r1,翻译来自:"StreamH",欢迎访问他的博客:" http://blog.csdn.net/qs_csu ",再次感谢"StreamH" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。 声明   欢迎转载,但请保留文章原始出处:)     博客园: http://www.cnblogs.com/     Android中文翻译组: http://androidbox.sinaapp.com/ Bitmap 译者署名: StreamH 译者链接: http://blog.csdn.net/qs_csu 版本: Android 4.0 r1 结构 继承关系 public class Bitmap extends Object implements Parcelable java.lang.Object android.graphics.Bitmap 内部类    enum Bitmap.CompressFormat    详细说明位图的压缩格式    enum Bitmap.Config    位图的结构 常量 Int DENSITY_NONE 标志着该位图是以未知的像素密度创建的 参见 getDensity()

android Bitmap学习总结

我们两清 提交于 2020-03-26 05:11:25
http://bbs.chinaunix.net/thread-3682769-1-1.html BitMap类: public void recycle()——回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() ——判断位图内存是否已释放 public final int getWidth()——获取位图的宽度 public final int getHeight()——获取位图的高度 public final boolean isMutable()——图片是否可修改 public int getScaledWidth(Canvas canvas)——获取指定密度转换后的图像的宽度 public int getScaledHeight(Canvas canvas)——获取指定密度转换后的图像的高度 public boolean compress(CompressFormat format, int quality, OutputStream stream)——按指定的图片格式以及画质,将图片转换为输出流。 format:Bitmap.CompressFormat.PNG或Bitmap.CompressFormat.JPEG quality:画质,0-100.0表示最低画质压缩,100以最高画质压缩

Android Bitmap 和 Canvas详解

混江龙づ霸主 提交于 2020-03-26 05:05:39
位图是我们开发中最常用的资源,毕竟一个漂亮的界面对用户是最有吸引力的。   1. 从资源中获取位图   可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。   当然,首先需要获取资源:   Resources res=getResources();   使用BitmapDrawable获取位图   使用BitmapDrawable (InputStreamis)构造一个BitmapDrawable;   使用BitmapDrawable类的getBitmap()获取得到位图;   // 读取InputStream并得到位图   InputStreamis=res.openRawResource(R.drawable.pic180);   BitmapDrawable bmpDraw=newBitmapDrawable(is);   Bitmap bmp=bmpDraw.getBitmap();或者采用下面的方式:   BitmapDrawablebmpDraw=(BitmapDrawable)res.getDrawable(R.drawable.pic180);   Bitmapbmp=bmpDraw.getBitmap();使用BitmapFactory获取位图   (Creates Bitmap objects fromvarious