文档章节

扫描图片像素

古乙丁三雨
 古乙丁三雨
发布于 2015/02/26 18:52
字数 170
阅读 22
收藏 0
    NSUInteger width = img.size.width;
    NSUInteger height = img.size.height;
    NSUInteger bytesPerPixel = 4;
    NSUInteger bytesPerRow = width * bytesPerPixel;
//    NSUInteger bytesPerColumn = height * bytesPerPixel;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef bmContext = CGBitmapContextCreate(NULL, width, height, 8, bytesPerRow,     colorSpace, kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);
    CGColorSpaceRelease(colorSpace);
    CGContextDrawImage(bmContext, (CGRect){.origin.x = 0.0f, .origin.y = 0.0f, .size.width = width, .size.height = height}, img.CGImage);
    UInt8* data = (UInt8*)CGBitmapContextGetData(bmContext);
    const size_t bitmapByteCount = bytesPerRow * height;
    
    struct Color {
        UInt8 r;
        UInt8 g;
        UInt8 b;
    };
    for (size_t i = 0; i < bytesPerRow; i += 4) //shift 1 pixel
    {
        for (size_t j = 0; j < bitmapByteCount; j += bytesPerRow) //check every pixel in column
        {
            struct Color thisColor = {data[j + i + 1], data[j + i + 2], data[j + i + 3]};
            if (thisColor.r != 0)
            {
                NSString *areaPoint = NSStringFromCGPoint(CGPointMake(i/4, j/(width * bytesPerPixel)));
                [arrayPoint addObject:areaPoint];

//           NSLog(@"%zu %zu",i/4,j/(width * bytesPerPixel)); // point of area
            }
        }
    }
    CGContextRelease(bmContext);


© 著作权归作者所有

共有 人打赏支持
古乙丁三雨
粉丝 1
博文 55
码字总数 29925
作品 0
景德镇
程序员
私信 提问
[Android实例] 深入学习Bitmap-android的图片扫描

我这个实例是将一个位图用几秒钟扫描,然后得到它的反色图。做这个实例主要是想研究下Bitmap类和Color类,重点是getPixe和setPix的这两个方法的用法。 Java代码 1 publicclassSkanBitmapext...

android技术开发
2013/07/25
0
0
图片局部放大选中部分错位解决办法

情景如下: 在窗体上添加一个Picturebox用来加载图片,当鼠标在Picturebox移动时圈定一个矩形区域,并将矩形区域放大显示在Panel控件上。 问题: 已PictureBox作为坐标参考系,动态获得跟随鼠...

馨缘6009
2014/05/15
0
0
php获取图片RGB颜色值的例子

php获取图片RGB颜色值的例子 很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片。 之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然...

mysoftsky
2014/07/29
0
0
opencv 2 computer vision application programming第二章翻译

第二章 操作像素 在本章,我们会讲述: 处理像素值 用指针扫描图像 用迭代器扫描图像 写高效的图像扫描循环 用相邻的方法扫描图像 展示简单的图像计算 定义感兴趣的区域 【概述】 为了建立计...

lovedan
2013/04/30
0
0
使用DeepLearning4j训练和保存模型

一、前言 最近一直在研究深度学习,联想起之前所学,感叹数学是一门朴素而神奇的科学。F=Gm1m2/r²万有引力描述了宇宙星河运转的规律,E=mc²描述了恒星发光的奥秘,V=H*d哈勃定律描述了宇宙...

孟飞阳
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
10
1
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
4
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
5
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
5
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部