jjzjj

drawBitmap

全部标签

c++ - 在 Direct2D 中绘制部分图像

由于GDI+相当(可笑)慢,我决定迁移到Direct2D。我在许多论坛上查找了很多主题(包括thisone),但没有成功(这也可能是由于已经很晚的事实造成的)并且Direct2D文档仍然非常薄(并且令人困惑,至少对我而言).无论如何,我有一个在Direct2D中打开的.PNG并且只想每20毫秒绘制一次它的一部分。初始化D2D内容ID2D1Factory*d2dFactory=NULL;IWICImagingFactory*d2dWICFactory=NULL;IWICBitmapDecoder*d2dDecoder=NULL;IWICFormatConverter*d2dConvert

java - drawCircle 与 drawBitmap

我正计划在我的游戏中实现一组新图形:普通圆圈。绘制的Sprite(在本例中为圆圈)的数量从2-3开始,并且可以无限增加(可能)。不过,最大值可能在60左右。总共必须有5种类型的圆圈,每种都有不同的颜色和可能的大小。现在看到我要到星期一才会实现它,我想我会在stackoverflow上问一下。有人知道哪种方法更快吗? 最佳答案 位图几乎总是比任何类型的绘图都快。通过正确的准备,绘制位图只是将内存转储到屏幕上。绘制圆圈涉及大量计算,包括抗锯齿。我在JavaOne2009上发表了一篇涉及此内容的论文,但那些旧论文似乎已从网站上删除。这确实

android - drawBitmap 不是全屏

我使用这样的onDraw方法显示图像:publicvoidonDraw(Canvascanvas){super.onDraw(canvas);Bitmapbackground=BitmapFactory.decodeResource(getResources(),R.drawable.photo0);canvas.drawColor(Color.BLACK);canvas.drawBitmap(background,0,0,null);我想将此图像设置为背景,但它只显示在屏幕的一部分上。如何设置为全屏?有没有一种方法可以从xml将图像设置为背景,并通过onDraw方法在该图像上绘制其他

android - canvas.drawBitmap() 仅在它为 0 时支持 alpha 层

我正在使用BitmapFactory.decodeResource加载png资源,然后使用drawBitmap()在Canvas上绘制它们。我一次绘制不同的层,这样透明对象应该遮挡它们应该遮挡的东西,但是当我的png中的alpha级别高于0时,它们似乎被忽略了。不渲染alpha为0的地方是正确的,但在alpha小于255的地方而不是将颜色与该像素处的现有颜色混合,它只是绘制它而根本没有任何alpha混合。如何根据源图像的alphachannel在Canvas上绘制位图并进行适当的混合?相关代码fragment如下:BitmapFactory.Optionsopt=newBitmapFa

android - Canvas.native_drawBitmap 中的 ANR

我最近收到了同样的ANR报告。当应用程序尝试绘制一些位图时(当以ImageViews作为元素渲染GridView时),就会发生ANR。我进行了大量调试,现在可以肯定地说,挂起既不依赖于位图,也不依赖于它被绘制的位置。堆有50%空闲,图像不大于400px^2网格元素没有任何自定义布局-只有简单的ImageView。在HTCDesire(1GHzCPU)、Hero、模拟器等上测试。ANR持续永远,因此在绘制位图时就像某个无限循环在运行。还有什么会导致这种挂起?报告如下:DALVIKTHREADS:"main"prio=5tid=1NATIVE|group="main"sCount=1dsC

android - 使用 Canvas 在另一个矩形的中心绘制图像

在我看来我有一个大矩形,矩形可以移动。当矩形移动到某个地方时,我想在大矩形的中心绘制图像。我的问题是我不能将图像的中心放在矩形的中心。我用过:canvas.drawBitmap(rotatedBitmap,matrix,paint)canvas.drawBitmap(rotatedBitmap,left,top,paint)但我找不到canvas.drawBitmap(rotatedBitmap,centerX,centerY,paint),所以我想使用矩阵,但矩阵也会从左侧和顶部开始移动图像,而不是从中心开始,你能提供一些线索吗在矩形的中心绘制图片? 最佳

Android drawBitmap(...) 方法很慢?

我正在使用SurfaceView编写Android游戏。SurfaceView获取的Canvas绘制了一个大小为80x80的32位PNG图像,带有alpha层。drawBitmap方法耗时2-3毫秒。这是绘制这么小的图像的正常时间还是在幕后发生了一些隐式转换?我有大约40个游戏对象(基于sprite)需要绘制,一次绘制所有这些对象的时间大约需要100毫秒。这非常慢,并且只能为动态游戏提供10FPS。我尝试了很多方法,例如关闭抗锯齿、关闭alpha等,但都无济于事。我应该如何优化绘图时间以至少获得25FPS?谢谢,兹拉特科 最佳答案

java - Android Canvas.DrawBitmap 没有模糊/抗锯齿?

我正在尝试使用Sprite(或非常像素化的角色、背景等)制作安卓游戏。我像这样在Canvas上画它们......matrix.preScale(xrat,yrat);canvas.drawBitmap(img,matrix,null);其中img是位图,xrat和yrat是比例。我的问题是,当我测试时,位图模糊或抗锯齿,有什么办法可以防止这种情况发生?如果block是模糊的,游戏的刚性block艺术风格将被破坏。感谢任何(ANY)帮助! 最佳答案 创建一个新的Paint以在使用设置绘制位图时使用:PaintdrawPaint=new

android - 具有不同渲染输出的 drawBitmap(Nexus 7 与其他设备)

在我的应用程序中,我在缩小时使用drawBitmap()来显示低分辨率位图。我在多种设备(GalaxyTab、KindleFire、MotoXoom和Nexus7)上对其进行了测试。除了Nexus7之外,我在所有这些中都获得了相同的渲染质量。您可以在随附的屏幕截图中看到差异。外部区域是我正在使用drawBitmap的区域,如下所示:mSrcRectF.set(src_x1,src_y1,src_x2,src_y2);mDesRectF.set(view_x1,view_y1,view_x2,view_y2);mMatrix.setRectToRect(mSrcRectF,mDesRec

Android DrawBitMap 在使用 ARGB_8888 时非常慢

我发现DrawBitMap只需要50-60毫秒来绘制三个位图,一个是占据整个屏幕的矩形,一个是圆形,另一个是路径。我的位图是通过在空白位图上使用Canvas.drawPath、drawRect和drawCircle创建的,Bitmap.Config为ARGB_8888。我正在使用ARGB_8888使背景可见以获得分层效果。我震惊地发现所花费的时间大约为50毫秒,因为我认为drawBitmap是一个非常简单的操作。有人可以指导我是否犯了任何根本错误。以下是我的代码创建空白位图Rectangle=Bitmap.createBitmap(320,480,Bitmap.Config.ARGB_