像素

IOS CGContextSetLineWidth无法设置1像素线宽?

北城余情 提交于 2019-12-06 08:17:31
前段时间美术在验收界面时提了问题:为啥要求1像素宽的一个矩形框似乎却变成了2,3个像素宽。仔细检查过代码后发现,的确设置了LineWidth为1,但绘制效果却并不如人愿。似乎在ios上绘制最低要2个像素的线宽。 查看文档后发现造成这个问题的原因是Quartz的抗锯齿机制。一种粗暴的解决方案是不采用抗锯齿,即:CGContextSetShouldAntialias(context, NO)。但是显而易见的问题是取消抗锯齿会导致绘制效果变差。而另外一种方案则比较取巧:将绘制调整到半像素坐标系上: 比如 CGContextMoveToPoint(context, 100.0, 100.0 ); CGContextAddLineToPoint(context, 100.0, 200.0 );改为 CGContextMoveToPoint(context, 100.5, 100.5 ); CGContextAddLineToPoint(context, 100.5, 200.5 ); 这是因为:所谓的线宽指的是给定路径的中心到两边的粗细,换句话是在路径的两边各绘制一半。如图 在绘制线宽为1的直线(3,1)到(3,5)时,实际上是占据了左右两个像素各半个像素,而真正绘制时当然是以一个像素为标准单位,所以浅蓝色区域就会以相近的方式进行渲染。这也是宽为1.0的线绘制并不准确的原因

高德地图基础

白昼怎懂夜的黑 提交于 2019-12-06 06:22:40
一,基础类: new AMap.Pixel(x:Number,y:Number)  构造一个像素坐标对象。,确定地图上的一个像素点。xy为像素单位 new AMap.Size(width:Number,height:Number)   地物对象的像素尺寸  构造尺寸对象。参数width:宽度,height:长度,单位:像素; new AMap.LngLat(lng:Number,lat:Number,noAutofix:bool)  经纬度坐标,确定地图上的一个点。 lng、lat分别代表经度、纬度值; noAutoFix表示是否自动将经度修正到 [-180,180] 区间内,缺省为false, new AMap.Bound( southWest: LngLat , northEast: LngLat )  地物对象的经纬度矩形范围。参数southWest、northEast分别代表地物对象西南角经纬度和东北角经纬度值。 二,地图: new AMap.Map( container:String/HTMLDivElement, opts: MapOptions ) 方法: getBounds( )  获取当前地图视图范围,获取当前可视区域。 getSize( )    获取地图容器像素大小 setZoom(level:Number)  设置地图显示的缩放级别,在PC上

固定宽度布局开发WebApp如何实现多终端下自适应?

旧巷老猫 提交于 2019-12-06 06:19:17
1.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域。 在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。 在默认情况下,一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站。 移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。下图列出了一些设备上浏览器的默认viewport的宽度。 浏览器的默认viewport的宽度。 2.移动设备哪些因素会引起css中px的变化? 在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。 1)从iphone4开始,苹果公司便推出了所谓的Retina屏

【30分钟学完】canvas动画|游戏基础(extra1-1):美图我也行

余生颓废 提交于 2019-12-06 05:13:06
前言 本文是接续系列教程的extra1,主要是介绍颜色系统在canvas中的应用。 本来是与extra1一起成文的,因为segmentfault莫名其妙的字数限制bug只能分割放送了。 canvas操纵像素 你如果认为canvas只是画图工具,那接下来的操作会颠覆你的认知。canvas提供api可以获取画布上任何一个像素,并可以自由的操作他们。 获取像素 直接访问像素的功能由canvas上下文中的ImageData对象提供,它提供了以下一组方法,都会返回ImageData对象。 getImageData()接受x轴坐标、y轴坐标、宽度、高度四个参数,获取画布上这个矩形区域的像素数据; createImageData()可凭空创建指定宽高的矩形区域,初始是黑色,也可以输入一个ImageData对象用于创建一个同样大小的区域,但注意 不会复制像素数据 。 context.getImageData(x, y, width, height); context.createImageData(width, height); context.createImageData(anothorImageData); 获取到的ImageData对象中data属性是一个一维数组,乍看乱糟糟的,但细看你会发现其实这就是RGBA的颜色数据,也就是数组中每个四位就是一个像素的颜色数据,这里注意一下

商品品牌

你离开我真会死。 提交于 2019-12-06 05:08:16
商品品牌 一、商品品牌 为商品分类绑定品牌后,在商家后台发布商品或编辑的商品的时候页面中会根据商品所属分类调用分类所绑定的品牌列表,否则不会显示出品牌列表。 添加商品品牌: 1、品牌首字母:指品牌的首字母。 2、图片(建议使用宽22像素-高60像素内的GIF或PNG透明图片;点击下方”保存“按钮后生效):指上传品牌的图片。 3、品牌推荐广告图(建议使用宽22像素-高60像素内的GIF或PNG透明图片;点击下方”保存“按钮后生效):显示在前台品牌专区。 来源: https://my.oschina.net/u/4103048/blog/3135817

affine_trans_pixel 和 affine_trans_point_2d的区别

二次信任 提交于 2019-12-06 02:40:47
affine_trans_pixel 和 affine_trans_point_2d的不同在于所使用的坐标系原点不同,affine_trans_pixel 使用的是像素坐标系, 即原点位于图像的左上角第一个像素,使用row和column来确定像素位置,而affine_trans_point_2d的原点位于左上角第一个像素的中心,使用x和 y来标识坐标位置(实际原点相差(0.5,0.5))。 并且在使用affine_trans_point_2d时如果使用标准图像坐标系, 则row坐标必须传递Px,列坐标必须传递Py以保证旋转方向 的正确性。 来源: https://www.cnblogs.com/bile/p/11958037.html

图像卷积与滤波的一些知识点

核能气质少年 提交于 2019-12-05 23:48:07
转自 http://blog.csdn.net/zouxy09/article/details/49080029 一、线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。 对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置,这个操作就叫卷积或者协相关。卷积和协相关的差别是,卷积需要先对滤波矩阵进行180的翻转,但如果矩阵是对称的,那么两者就没有什么差别了。 Correlation 和 Convolution可以说是图像处理最基本的操作,但却非常有用。这两个操作有两个非常关键的特点:它们是线性的,而且具有平移不变性shift-invariant。平移不变性指我们在图像的每个位置都执行相同的操作。线性指这个操作是线性的,也就是我们用每个像素的邻域的线性组合来代替这个像素。这两个属性使得这个操作非常简单,因为线性操作是最简单的,然后在所有地方都做同样的操作就更简单了。 实际上,在信号处理领域,卷积有广泛的意义,而且有其严格的数学定义,但在这里不关注这个。

手把手教你实现热力图!

こ雲淡風輕ζ 提交于 2019-12-05 22:56:00
以下内容转载自腾讯位置服务公众号的文章《硬核干货来了!鹅厂前端工程师手把手教你实现热力图!》 作者:腾讯位置服务 链接: https://mp.weixin.qq.com/s/bgS7uFlyLtK8WtusKfv8lA 来源:微信公众号 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 各位小伙伴们,还记得今年年初时我们推出的数据可视化组件吗?《助你开启“上帝视角” 数据可视化组件全新上线》。这些基于地图的数据可视化组件,以附加库的形式加入到JSAPI中,目前主要包括热力图、散点图、区域图、迁徙图。 想知道这个“上帝视角”是如何开启的吗?想了解这些可视化组件背后的实现原理吗?下面就让腾讯位置服务web开发一线工程师,美貌与智慧并存的totoro同学为大家揭秘。 由于篇幅有限,本文以热力图为例,描述其背后的实现原理。 热力图简介 热力图是以颜色来表现数据强弱大小及分布趋势的可视化类型,热力图可应用于人口密度分析、活跃度分析等。呈现热力图的数据主要包括离散的坐标点及对应的强弱数值。 热力图实现 数据准备 本文只关心热力图的基础实现,无论你是用于地图,还是网页焦点分析还是其他场景,均需将对应场景的坐标转化为Canvas画布上的二维坐标,最终我们需要的数据格式如下: // x, y 表示二维坐标; value表示强弱值 var data = [ {x: 471, y:

硬核干货来了!鹅厂前端工程师手把手教你实现热力图!

◇◆丶佛笑我妖孽 提交于 2019-12-05 22:48:10
以下内容转载自腾讯位置服务公众号的文章《硬核干货来了!鹅厂前端工程师手把手教你实现热力图!》 作者:腾讯位置服务 链接: https://mp.weixin.qq.com/s/bgS7uFlyLtK8WtusKfv8lA 来源:微信公众号 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 各位小伙伴们,还记得今年年初时我们推出的数据可视化组件吗?《助你开启“上帝视角” 数据可视化组件全新上线》。这些基于地图的数据可视化组件,以附加库的形式加入到JSAPI中,目前主要包括热力图、散点图、区域图、迁徙图。 想知道这个“上帝视角”是如何开启的吗?想了解这些可视化组件背后的实现原理吗?下面就让腾讯位置服务web开发一线工程师,美貌与智慧并存的totoro同学为大家揭秘。 由于篇幅有限,本文以热力图为例,描述其背后的实现原理。 热力图简介 热力图是以颜色来表现数据强弱大小及分布趋势的可视化类型,热力图可应用于人口密度分析、活跃度分析等。呈现热力图的数据主要包括离散的坐标点及对应的强弱数值。 热力图实现 数据准备 本文只关心热力图的基础实现,无论你是用于地图,还是网页焦点分析还是其他场景,均需将对应场景的坐标转化为Canvas画布上的二维坐标,最终我们需要的数据格式如下: // x, y 表示二维坐标; value表示强弱值 var data = [ {x: 471, y:

像素

依然范特西╮ 提交于 2019-12-05 19:37:00
像素格式 = 分辨率(图像分辨率PPI) X 英寸 A4 :297mm X 210MM = 11.69英寸 X8.27英寸 长 11英寸 X300PPI =3507像素 宽:8英寸 X 300PPI =2481像素 来源: https://www.cnblogs.com/xuanbjut/p/11941911.html