草庐IT

porter-duff

全部标签

java - Duff 的设备是否加速了 Java 代码?

使用现有的Sun1.6编译器和JRE/JIT,使用Duff的Device示例的那种广泛展开来展开循环是个好主意吗?或者它最终会成为没有性能优势的代码混淆?我使用的Java分析工具提供的有关逐行CPU使用情况的信息少于valgrind,因此我希望通过其他人的经验来增强测量。请注意,当然,您不能完全对Duff的设备进行编码,但您可以进行基本的展开,这就是我想知道的。shortstateType=data.getShort(ptr);switch(stateType){caseSEARCH_TYPE_DISPATCH+16:if(c>data.getChar(ptr+(3data.getCh

Android Porter-Duff 合成性能

我无法找到任何有关使用不同Porter-Duff模式合成位图的相对性能的互联网文章或Google文档。在编程时对我来说变得非常明显的是,传统的SRC/DST前缀模式比AndroidMode.DARKEN、Mode.LIGHTEN、Mode.MULTIPLY模式执行得更快(快3-4倍)。在720p屏幕上渲染光照mask时,使用后一种模式会使我的游戏引擎性能从40+降低到13FPS左右。因此我的问题是:有没有比提供的Porter-Duff模式更快的使用变暗/变亮属性合成图像的方法?是否值得切换到OpenGL?是否有关于不同合成模式的相对速度的数据? 最佳答案

android - PorterDuff 和路径

在我的项目中,我有一张位图填满了整个屏幕。在此位图上,我用绘制了一条路径android.graphics.Canvas.drawPath(Pathpath,Paintpaint)绘制是为了描边和填充路径的内容而设置的。我要实现的是删除与路径相交的bitamp部分。我设法在另一个位图而不是路径上使用porterduff规则获得了相同的行为。有没有机会对路径做同样的事情?mPaintPath.setARGB(100,100,100,100);//(100,100,100,100)mPaintPath.setStyle(Paint.Style.FILL_AND_STROKE);mPaintP

android - 如何为透明覆盖创建 mask ?

我有以下场景:一个位图用作背景,另一个位图用作覆盖层,可以是50%透明或不透明(在运行时可更改),第三个位图包含第二个掩码位图。我尝试了不同的Xfermodes配置和绘图顺序,但未能找到合适的。我将掩码用作位图,因为我需要能够在程序的两次运行之间或配置更改之间保存它。它是在用户在屏幕上绘制时创建的,有效地清除了war迷雾。来自最佳尝试的代码fragment。唯一没有像我希望的那样起作用的是我的面具的透明度。@OverrideprotectedvoidonDraw(Canvascanvas){canvas.drawBitmap(mFogOfWar,mTransformationMatri

android - 如何使用另一个位图作为掩码在位图上绘制?

我想使用另一个位图作为mask在位图上绘制。mask是一个黑色位图,其中有一个透明对象。我希望这个透明部分用任意颜色填充并添加到我的原始图像中。如何做到这一点?++蓝色= 最佳答案 我不得不按照@Christian的描述更换面具。然后,可以很容易地产生想要的结果:canvas.drawRect(rect,paint);paint.setXfermode(newPorterDuffXfermode(Mode.DST_IN));canvas.drawBitmap(mask,0.0f,0.0f,paint);

Android:圆形可绘制对象

我制作了这个CustomDrawable,它应该将任何Drawable夹在圆圈中。但是在我的实现中,传递的drawable是原始形式的输出,而不是循环形式。publicclassCircularDrawableextendsDrawable{PaintmPaint,xfermodePaint;DrawablemDrawable;int[]vinylCenter=newint[2];intradius;Bitmapsrc;PorterDuffXfermodexfermode;Rectrect;CanvastestCanvas;publicCircularDrawable(Drawable

android - 使用掩码显示具有 2 种不同颜色的 TextView

我正在尝试实现与此类似的效果:我现在在做什么:publicMaskedTextView(Contextcontext,AttributeSetattrs){super(context,attrs);p=newPaint(Paint.ANTI_ALIAS_FLAG);p.setTextSize(25);p.setColor(Color.GREEN);pReplace=newPaint(p);pReplace.setColor(Color.BLUE);pReplace.setXfermode(newPorterDuffXfermode(PorterDuff.Mode.DST_OVER));

android - 如何在位图周围创建浮雕?

热门游戏WordswithFriends在游戏板上绘制字母方block作为一个实体-您可以在以下屏幕截图中看到黄色线性渐变应用于所有字母拼贴,并且边缘有浮雕效果:在mywordgame我想要类似的效果:所以我创建了一个游戏板大小的mBitmap,然后将所有的图block绘制到其中,最后将位图绘制到mycustomview中。-设置:setLayerType(View.LAYER_TYPE_SOFTWARE,null);//createyellowlineargradientmGradStart=newPoint(3*mWidth/4,mHeight/3);mGradEnd=newPoi

android - 将两个图像与乘法和 % 不透明度混合在一起

我正在尝试使用Android将两个图像混合在一起,使用类似乘法的混合模式。//Prepare-------------------------------//CreatesourceimagesBitmapimg1=...Bitmapimg2=...//CreateresultimageBitmapresult=...Canvascanvas=newCanvas();canvas.setBitmap(result);//GetproperdisplayreferenceBitmapDrawabledrawable=newBitmapDrawable(getResources(),res

android - Porter-Duff:不同形状的不同行为?

我有以下布局:和以下myShape可绘制对象:我应用了以下过滤器:myButton.getBackground().setColorFilter(orange,PorterDuff.Mode.ADD);结果是这样的:然后我将myShape更改为圆角矩形:结果是这样的:左边没有应用滤镜,右边有滤镜。我想得到的:我应该怎么做才能使用Porter-Duff滤镜正确绘制橙色边框?还有其他选择吗? 最佳答案 Porter/Duff过滤依赖于图像的alphachannel。要仅绘制形状边框(没有其他形状空间),您应该将形状背景从白色更改为透明: