我想在iOS的ImageView上实现图像mask。图像mask应该是带圆角的六边形。一些第三方代码可用,但它们没有圆角。请帮帮我。因为我是iOS新手。 最佳答案 根据您显示图像的方式,您可以使用几种不同的方式来掩盖它。案例一:CALayer您可以在CALayer上使用mask属性。此属性属于CALayer*类型,会将目标层适本地屏蔽到给定层的alphachannel。请注意,此属性可以是CALayer的子类,特别是CAShapeLayer,它允许您指定mask的直接路径(此处您可以指定六边形)。还要注意确保在蒙版层上设置了一些不透
我想拍摄一张图片(画笔)并将其绘制成显示的图片。我只想影响该图像的alpha,我需要稍后将其导出。据我所知,大多数方向只真正涉及一些看起来成本高昂但不会成功的操作。也就是说,他们建议您绘制到屏幕外上下文中,创建mask的CGImage,并几乎每次应用画笔时都创建CGImageWithMask。我已经知道这代价高昂,因为即使只是这样做并绘制到上下文中对于iPhone来说也相当粗糙。我想做的是获取UIImageView的UIImage,并直接操作它的alphachannel。我也不是逐个像素地进行操作,而是使用具有自身柔软度的较大(20px半径)画笔。 最佳答案
在我的一个iOS应用程序中,我尝试使用CGImageMask剪切图像的一部分。我已经成功地使用以下代码屏蔽了图像:-(UIImage*)maskImage:(UIImage*)referenceImagewithMask:(UIImage*)maskImage{CGImageRefmaskRef=maskImage.CGImage;CGImageRefmask=CGImageMaskCreate(CGImageGetWidth(maskRef),CGImageGetHeight(maskRef),CGImageGetBitsPerComponent(maskRef),CGImageGe
我有一个UIView,view.layer.mask设置为CAShapeLayer的一个实例。形状层包含一条路径,现在我想通过添加第二个具有偶数/奇数规则的形状来向该形状添加一个洞,并淡入该洞的外观。问题是添加到路径似乎不是可动画的:[UIViewanimateWithDuration:2animations:^(){CGPathAddPath(parentPath,nil,holePath);[v.layer.maskdidChangeValueForKey:@"path"];}];我该如何制作动画? 最佳答案 经过一些摆弄,找到
我正在做相机应用程序。我有方形的捕获和裁剪图像。但我需要椭圆形或人脸形状。怎么来的? 最佳答案 我使用了以下方法并将捕获的位图图像传递给此方法。它会起作用。publicBitmapgetRoundedShape(BitmapscaleBitmapImage){inttargetWidth=125;inttargetHeight=125;BitmaptargetBitmap=Bitmap.createBitmap(targetWidth,targetHeight,Bitmap.Config.ARGB_8888);Canvascanva
我制作了一个应用程序,它在版本4.0或我们可以说是ics的设备上运行得非常好,但在ics之上它不能正常工作。在我的应用程序中,我试图同时在两个按钮上进行多点触控,并且它在4.0版以下运行完美。action_mask的值在触摸和非触摸时是第6个5。而在4.0以上的版本中它是1、2、0。这是为什么?entercodehere@overridepublicbooleanontouch(Eventev,MotionEventevent){intactionResolved=event.getAction()&MotionEvent.ACTION_MASK;intaction=paramMoti
我有一个带有绿色背景的简单Activity,我正在尝试提供一个带有透明圆形区域的红色叠加层。这是我要实现的效果:ExpectedImage根据我在网上找到的代码,我看到的是这样的:Resultofcode似乎正在发生的事情是PorterDuff将自身应用于Activity中的所有View,而不是我明确告诉它的View。Stack上的许多帖子都是关于用另一个位图遮盖一个位图,我试图用编程创建的圆形来遮盖View的一部分。这是我尝试使用的代码:publicclassClippingTestActivityextendsActivity{privatePaintmPaint;Clipping
在Android(1.5)中工作时,我有大约一百张字节数组形式的灰度图像。我想将图像用作alpha蒙版以在Canvas中绘制纯色。图像是固定的,但颜色可以改变。我可以为每个图像/颜色组合创建Bitmap对象,但这似乎非常低效。就内存和速度而言,解决此问题的好方法是什么?(我需要为每个图像/颜色组合多次执行此操作。) 最佳答案 我想我找到了我要找的答案:创建一个ARGB_8888位图,其中每个像素颜色设置为(gray为每种颜色创建一个新的PorterDuffColorFilter(color,PorterDuff.Mode.MULTI
我想改变图像特定部分的亮度。我知道如何使用ColorMatrix更改图像的亮度(或色调)。但它将应用于整个图像。我有一个mask文件(黑白图像)。我想仅在该mask的白色部分应用亮度变化。如何在Android中执行此操作?下面是蒙版图片和我想要得到的结果。 最佳答案 对于给定的位图和mask:首先创建一个临时位图:bitmap=BitmapFactory.decodeResource(ctx.getResources(),R.drawable.bitmap);mask=BitmapFactory.decodeResource(ctx
我正在尝试用底部的渐变alpha遮盖位图。渐变大小是固定的,与位图大小无关。但它绘制不正确:顶部的渐变底部,而不是顶部。怎么了?有示例代码:finalintGRADIENT_HEIGHT=32;publicBitmapaddGradient(Bitmapsrc){intw=src.getWidth();inth=src.getHeight();Bitmapoverlay=Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);Canvascanvas=newCanvas(overlay);canvas.drawBitmap(src,0,0,nu