根据图片的像素 手势穿透问题

新建一个UIImageView的子类。

并重写 :

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{

    unsigned char pixel[1] = {0};
    CGContextRef context = CGBitmapContextCreate(pixel,
                                                 1, 1, 8, 1, NULL,
                                                 kCGImageAlphaOnly);
    UIGraphicsPushContext(context);
    [self.image drawAtPoint:CGPointMake(-point.x, -point.y)];
    UIGraphicsPopContext();
    CGContextRelease(context);
    CGFloat alpha = pixel[0]/255.0f;
    NSLog(@"------%.2f---",alpha);
    BOOL transparent = alpha < 0.01f;

    return !transparent;
}

这样的话,这个图片的像素小于0.01的地方就不会响应手势,像素大于0.01的地方才会响应手势。

时间: 2024-10-13 14:32:14

根据图片的像素 手势穿透问题的相关文章

Png图片的透明部分穿透测试

原文:Png图片的透明部分穿透测试        private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mouseP = e.GetPosition(this); VisualTreeHelper.HitTest(this, new HitTestFilterCallback(HitFilter), new HitTestResultCallback(HitResult)

win32加载图片获得像素值

在写光栅渲染器时,需要加载图片获得像素以便进行纹理插值,试了几种方法发现下面这种比价简单,效率也可以接受 Texture2D是我自己定义的类,其中m_pixelBuffer是一个动态二维数组,每个元素为ZCFLOAT3(自定义类型用来保存颜色rgb值). 1 #include "LoadBitmap.h" 2 #include <windows.h> 3 #include <gdiplus.h> 4 5 #include <iostream> 6 #

图片去除下间隙(图片3像素)的方法

一.提出问题 在浏览器中,图片有一个下间隙问题,有人也称之为图片3像素BUG.如下图: ,这是放大过的效果.我们可以清晰的看到,图片明显没有跟文字的最底部对齐,比如字母g,就比图片的底部更下探出一截. 这里需要澄清一下: 1.这并不是什么浏览器bug,而只是英文字母书写时有个基线的问题,基线决定了图片的对其方式.这才是造成浏览器中图片下间隙的本质. 那么,什么是基线? 我们小时候学英文,一开始都是用的四线本写英文字母,就是那个长的跟五线谱一样的本,只不是4条线.其中第3条线就是基线,此线是绝大多

精确选择识别png图片有像素的区域

/** * * *---------------------------------------* * | ***精确选择识别png图片有像素的区域*** | * *---------------------------------------* ** * 编辑修改收录:fengzi(疯子.wu341.wgq341) * * 不会写代码,我是代码搬运工. * * 联系方式:QQ(493712833). * * 随 笔: https://www.cnblogs.com/fengziwu/ * *

android 通过bitmapfactory得到图片真实像素的方法,以及没有得到真实像素的原因

原文来自:原文地址 由于这个错误导致浪费非常长时间找原因,所以要赶紧记录下来. 过程是这种,在使用android读取图片的时候,就是使用BitmapFactory.decodeResource(this.getResources(),R.drawable.base)的时候 返回的图片大小和真实图片大小不一样有木有,比方图片是700*450的, 但读出来是525*337的.假设有遇到过此类情况,请往下看 这个错误,仅仅能怪咱们学艺不精,原因就是你没在对应的资源目录里放图片就是 (drawable-

Object-C图片压缩--像素压缩和非像素压缩

/* * @brief 压缩图片 @Fire * * @param originImage 原始图片 * @param pc 是否进行像素压缩 * @param maxPixel 压缩后长和宽的最大像素:pc=NO时,此参数无效. * @param jc 是否进行JPEG压缩 * @param maxKB 图片最大体积,以KB为单位:jc=NO时,此参数无效. * * @return 返回图片的NSData */ - (NSData*) compressImage:(UIImage*)origi

对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindowProperty(设置图片窗口的像素) 4.video_capture(对图片像素进行设置)

cv2.VideoCapture(0) #构建视频抓捕器 参数说明:0表示需要启动的摄像头,这里也可以写视频的路径 cv2.nameWindow(name, cv2.WINDOW_NORMAL) # 构建视频的窗口 参数说明: 表示窗口的名字, cv2.WINDOW_NORMAL表示窗口的大小,这里窗口的大小是正常, 3.cv2.setWindowProperty(name, cv2.WND_PROP_FULLSCREEN, cv2.WND_PROP_FULLSCREEN) 参数说明: name

解决图片三像素问题

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } .box{ width: 750px; height: 300px; background: red; font-size: 0; } img{

[ActionScript 3.0] 利用InteractivePNG.as类精确选择识别png图片有像素的区域

用法:如果是把png直接导入flash转换成影片剪辑,只需在影片剪辑属性中勾选为ActionScript导出(x),并把基类里的flash.display.MovieClip替换成InteractivePNG即可:如果是外部导入png,只需将存放png的类继承InteractivePNG即可: 1 package 2 { 3 import flash.display.Loader; 4 import flash.display.MovieClip; 5 import flash.display.