-
小程序中的view 和 cover-view的区别
2019-10-14 17:19:191:view 相当于div 2:cover-view :覆盖在原生组件之上的文本视图。 注意点:只支持嵌套 cover-view、...一开始不怎么理解,直到遇到了一个bug,在找bug的过程中发,大家现先看一下这张图片 正常情况下,微信打...1:view 相当于div
2:cover-view :覆盖在原生组件之上的文本视图。
注意点:只支持嵌套 cover-view、cover-image,可在 cover-view 中使用 button。组件属性的长度单位默认为px,2.4.0起支持传入单位(rpx/px)。 参考文档
一开始不怎么理解,直到遇到了一个bug,在找bug的过程中发,大家现先看一下这张图片
正常情况下,微信打开调试工具是这样的
cover-view 是覆盖在原生组件之上的文本视图,相当于z-index,用了cover-view,会有一个小小的bug,就是视图向上拉动的使用很艰难,就好像逆风而行,很难滑,一开始测试测出这个bug,我还有点无奈,怎么会这样子的呢,后来发现代码中用cover-view 就是看了一下文档,就解决了,代码如下
<view class="course_wrap_top"> <cover-view class="cover_view"> <cover-image src="{{item.course_pic}}" mode="aspectFit" class="cover_img"> </cover-image> </cover-view> <cover-view class="remind"> <cover-view class="remind_word"> <block wx:if="{{item.course_status == 1}}">即将开课</block> <block wx:if="{{item.course_status == 2}}">正在开课</block> </cover-view> <cover-view class="study_num">{{item.buy_number}}人参加学习</cover-view> </cover-view> </view>
<view class="course_wrap_top"> <view class="cover_view"> <image src="{{item.course_pic}}" mode="aspectFit" class="cover_img"> </image> </view> <view class="remind"> <view class="remind_word"> <block wx:if="{{item.course_status == 1}}">即将开课</block> <block wx:if="{{item.course_status == 2}}">正在开课</block> </view> <view class="study_num">{{item.buy_number}}人参加学习</view> </view> </view>
-
HImage转换为Bitmap的终极解决方案(C#)彩色三通道图像
2021-03-19 15:31:59Halcon对象HImage三通道图像转换为C#中的Bitmap的终极解决方案 时隔一年多,终于把这个问题解决掉了。...本文提供两种类似的解决方案,思路其实和原方案都是一致的,两种方案的区别在于前者经测试同HImage转换为Bitmap的终极解决方案(C#)彩色三通道图像
时隔一年多,终于把这个问题解决掉了。现在回头看,这个问题其实并不复杂,当初处理不了,完全是因为缺乏经验,多看多写,可能就会在处理其他问题时看到解决困扰很久的问题的解决方法。
原问题参阅:C# Halcon联合编程问题(二)
原方案参考Halcon对象Hobject转换为.net对象Bitmap
cnblogs因为平台在维护,只好先发到这边来了于一天后(3.20)更新:
写完这篇第二天,突然想明白了之前没有搞明白的问题。
原来的方案有问题的地方终于知道在哪里了。
经测试发现,GetImagePointer3
如果参数传递的是HTuple类型,可以看到返回的HTuple的type是Long,这种情况下,如果想要取HTuple指向的指针地址,显然是不应该用.I
来取的,而应该用.L
,这样一来,问题就解决了。包括如果用IntPtr,如果能接受unsafe的话,其实也不用把指向的地址中的值全都拷贝出来,直接用(byte*)IntPtr
就是个地址,是和Scan0
那个地方是一样的。当初别人用.I
可能和平台有关系,别人可能是32位的,而我的是64位的。本文提供两种类似的解决方案,思路其实和原方案都是一致的,两种方案的区别在于前者经测试同样的图片,耗时约是后者的20倍-30倍,后者要用到unsafe,我是不太喜欢在C#中用unsafe,这个单词给人的感觉就不太安全。
本文提供的解决方案与原来找到的解决方案最主要的不同,在于拿到图像灰度值的指针之后的操作,原方法转换为了byte*,而我的方法将指针所指向的数值复制到了byte数组中。
上代码:// 读取图像 HImage image = new HImage(@"0.png"); // 获取存放r,g,b值的指针 image.GetImagePointer3(out IntPtr r, out IntPtr g, out IntPtr b, out string type, out int w, out int h); byte[] red = new byte[w * h]; byte[] green = new byte[w * h]; byte[] blue = new byte[w * h]; // 将指针指向地址的值取出来放到byte数组中 Marshal.Copy(r, red, 0, w * h); Marshal.Copy(g, green, 0, w * h); Marshal.Copy(b, blue, 0, w * h);
以下是两种方案的区别
方案1:Bitmap bitmap = new Bitmap(w, h, PixelFormat.Format32bppRgb); Rectangle rect = new Rectangle(0, 0, w, h); BitmapData bitmapData = bitmap.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb); IntPtr bptr = bitmapData.Scan0; for (int i = 0; i < red.Length; i++) { Marshal.Copy(blue, i, bptr + i * 4, 1); Marshal.Copy(green, i, bptr + i * 4 + 1, 1); Marshal.Copy(red, i, bptr + i * 4 + 2, 1); Marshal.Copy(new byte[] { 255 }, 0, bptr + i * 4 + 3, 1); } bitmap.UnlockBits(bitmapData);
方案2:
Bitmap bitmap2 = new Bitmap(w, h, PixelFormat.Format32bppRgb); Rectangle rect2 = new Rectangle(0, 0, w, h); BitmapData bitmapData2 = bitmap2.LockBits(rect2, ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb); unsafe { byte* bptr2 = (byte*)bitmapData2.Scan0; for(int i = 0; i < w * h;i ++) { bptr2[i * 4] = blue[i]; bptr2[i * 4 + 1] = green[i]; bptr2[i * 4 + 2] = red[i]; bptr2[i * 4 + 3] = 255; } } bitmap2.UnlockBits(bitmapData2);
两种方案都经过测试,可以获取到准确的图像数据。
测试使用的图像大小为3072*2048,使用方案1耗时约250ms,使用方案2耗时约10ms。
其实如果对图像格式没有特别的要求,Bitmap在new的时候完全可以使用Format24bppRgb
而不是Format32bppRgb
,这样遍历过程的耗时也会缩短很多,实测方案1可以缩短到不到200ms,方案2在10ms以内。
果然还是直接指针操作要快很多啊,但是如果可以的话,我是真不想用unsafe。
推测原来的方案是直接将HTuple.I转换为指针的时候出了毛病,但是因为对C/C++不太熟悉,暂时找不到不出错的写法。 -
重楼《辅_助是如何炼成的》游戏辅助原版视频+工具.txt
2020-07-28 16:45:16读取以及访问的区别6.调用CALL时,如果参数的数量正确数值正确,但又崩溃了原因可能是传递的参数是结构体. 059 -选择怪物功能分析-从明文包入手课程内容: 从明文包返回到功能代码并不难,这节课的重点是通过代码分析到... -
ggplot2:数据分析与图形艺术
2017-05-18 10:10:35笛卡尔坐标系下的条形图实际上可以对应极坐标系下的饼图,因为条形图的高可以对应饼图的角度,本质上没什么区别。因此在ggplot2中,从一幅条形图过渡到饼图,只需要加极少量的代码,把坐标系换一下就可以了。如果... -
枸杞的由来和技术栈
2021-01-02 15:11:32我觉得最大的问题还是目前社区提供的 <code>typings</code> 的数量和质量都不太尽如人意。 如果引用的库没有 <code>typings</code> ,或者 <code>typings</code> 错误地映射了源码,那既得不到强类型... -
ad怎么导出生产文件_Altium Designer生成Gerber文件的设置(嘉立创建议 )
2020-12-19 13:16:44Gerber和PCB工程文件的区别,类似HEX和原代码的区别,类似PDF和word的区别。由于不同的PCB设计软件的工程文件格式不统一,直接发Gerber给PCB厂商可以保证PCB加工的规范性和兼容性,同时Gerber格式不包含原理图还附带...一、Gerber格式是PCB行业图像转换的标准格式。Gerber是可以用于驱动光绘机的文件文件,可以把PCB的布线数据转化为光绘机生产。Gerber和PCB工程文件的区别,类似HEX和原代码的区别,类似PDF和word的区别。由于不同的PCB设计软件的工程文件格式不统一,直接发Gerber给PCB厂商可以保证PCB加工的规范性和兼容性,同时Gerber格式不包含原理图还附带一些保密作用。
嘉立创的推荐Altium Designer的Gerber加工文件设置如下。
1、文件-》制造输出-》Gerber Files
2、在‘概要’项中,单位选择英寸,厂商建议格式选择2:5最高精度。
其中,2:3,2:4,2:5代表文件使用的精度数据;2:3分辨率为1mil;2:4分辨率为0.1mil;2:5分辨率为0.01mil。
3、层设置里面‘画线层’全选,但是‘反射层’不选,否则会生成镜像的图像。
⒋、钻孔图层的钻孔绘制符号选“特征characters”用字母代表分孔图符号。
6、高级选项里面使用‘软件弧use software arcs’保证圆弧不被线段来近似替代。
选择确定,会在工程的Project Outputs文件夹下面生成Gerber文件。
二、钻孔文件转换
文件-》装配输出-》NC drill files
2、NC钻孔文件选项
三、生成了Gerber文件和钻孔文件后,把工程的Project Outputs文件夹打包压缩发送给PCB厂商就可以制作样板了。
-
字体怎么改成汉字_|海报设计|—我就不信,日文换成中文字体就不好看!!
2021-01-14 17:06:01每次我发日文或英文海报的时候,总会收到留言说:“换成中文,就丑了。”于是,我找来一组日文餐饮的海报,风格比较...(如下图)如果说区别的话,日文的字体看起来确实更加好看,这个因为日文的笔画结构比中文简单,...
每次我发日文或英文海报的时候,总会收到留言说:“换成中文,就丑了。”于是,我找来一组日文餐饮的海报,风格比较简约,主要以插画形式表现。下面先来看看我改的版本。(只有部分的价格没有转换成中文,其他都按翻译改成中文。)
目前我就改了这几张,整体的视觉效果毫无违和感。当我把原版的做对比之后,区别也不是很大。(如下图)
如果说区别的话,日文的字体看起来确实更加好看,这个因为日文的笔画结构比中文简单,另外日文有假名,所以编排的时候,疏密对比看起来也比较舒服,刚好冲淡了汉字“方正严谨”的感觉。所以我在选择字体的时候,比较倾向于俏皮的字体,笔画没那么严谨方正的,例如汉仪跳跳体简。
又或者将文字的字间距拉大,突显画面的留白感,另外还能体现出一种精致感。只要跟着这种规律来走的话,版面也不会太差的。
所以总结出,无论是日文还是英文,只要字体选对了,细节调整好,依然也能排出好的版面。前提你必须掌握版式的基础,否则说多也没用。接下来我们继续看看其他的日文餐饮海报。以上内容只是个人对版式的见解,不接受喷子恶意评论,如果其他有说不对的地方,请留下你宝贵的意见。
这些日本餐饮海报真香!我已经打包好给你了
日本甜品店的海报,这样设计也太好看了吧
日本海报的视觉感也太强了吧
部分图片来源网络,版权归原作者,如需转载请联系本号
-
Altium Designer生成Gerber文件
2016-12-29 15:09:22Gerber和PCB工程文件的区别,类似HEX和原代码的区别,类似PDF和word的区别。由于不同的PCB设计软件的工程文件格式不统一,直接发Gerber给PCB厂商可以保证PCB加工的规范性和兼容性,同时Gerber格式不包含原理图还附带... -
基于AT89S52 单片的频率计
2010-01-04 08:47:37原理图和印刷电路板图设计开发工具:PROTEL DXP Protel DXP 是第一套完整的板卡级设计系统,真正实现在单个应用程序中的 集成。设计从一开始的目的就是为了支持整个设计过程,Protel DXP 让你可以 选择最适当的设计... -
极品ADSL+路由器驱动优化工具cfos_7.52和cfosspeed_5.12汉化特别版
2010-06-29 08:26:00最好方式, 就是发一封 eMail, 夹个大档案 (建议超过 5MB) 给自己, 但也不用真的把这封信传完, 只要能保持全速上传约 60 秒就可以了. (6) 经过 (4) and (5) 以后, cFos/cFosSpeed 就会纪录那条 ADSL 的特性参数, ... -
Egret 的 童话 与 现实
2021-01-03 14:33:25所以balabalabala…… 但是这里面有一个本质的区别:NodeJS是充分挖掘了JS本身的特质和功能,让JS可以做更多的事情,而不是用JS去模拟其他某种语言,更不是从JS代码翻译成其他语言代码后再... -
SQL Server 2008数据库设计与实现(关系数据库实现的通关宝典)--随书源代码
2013-02-06 12:04:00Scott住在佛罗里达的Wellington,当他不坐在计算机前时,你会发现他和自己的家人在一起,或者骑着他的雅马哈摩托车轰鸣在当地的摩托车越野赛赛道上。你可以通过ScottKlein@SqlXml.com联系他。 目录 封面 -17 封底... -
自媒体神器 v20170905.zip
2019-07-15 23:26:12自媒体神器并没有做成100%全自动的,因为自媒体发文章和博客类的有本质的区别,发博客只要没有敏感关键词都没多大问题,但是自媒体不同,自媒体要求很高,不光是敏感词不能有,而且还要去掉别人的广告,还要伪原创... -
DDR2Layout指导手册
2018-04-20 16:10:59然后点击需要设置模型的器件,通常就是串联匹配电阻,分配或创建合适的仿真的模型,如果不知道如何创建,请在互联网上搜索或发邮件给正旗通信(Zencheer Studio)。 Model-Assigment-Select 分配好仿真模型之后的... -
4.3.2 error和exception的区别,CheckedException,RuntimeException的区别。 4.3.3 请列出5个运行时异常。 4.3.4 在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。 ...
-
myqq:Java版SWing“高”仿QQ即时通聊天系统-源码
2021-03-11 19:07:26这次之所以重新整理上传到GitHub,是因为12年的时候曾把这个发到网上,然后竟然还有很多人想要的代码,当时是上传到CSDN还没有设置了积分,不方便下载。虽然没什么技术含量,但感觉对新人应该还是有一点一点的地方的... -
asp.net知识库
2015-06-18 08:45:45C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base... -
C#数据结构
2013-12-10 11:49:54发中的工具箱,程序员可以直接拿来或经过少许的修改就可以使用,非常方便。 第二个是讲授常用的算法,这和数据结构一样,是人们在长期实践过程中的总结, 程序员可以直接拿来或经过少许的修改就可以使用。可以通过... -
16k小说网小偷程序 v1.05.rar
2019-07-05 07:12:35区别于其他小说的是:在小说阅读页文字底部可以控制的添加自己网站域名和网站名称。利于对本站的宣传和推广。 可维护,可修改,全自动,无需人工参与,只需设置广告即可永久使用。不用手动更新。 若是本人不在线,... -
该开源仓库的文章都是我个人原创,公众号发过的技术文章(干货)也会有相关的目录整理,很多知识点我还在不停的总结和完善。点击关注【Java3y公众号】 及时获取最新文章 :sparkling_heart:我希望这个开源仓库: 能...
-
-
-
网管教程 从入门到精通软件篇.txt
2010-04-25 22:43:49Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ... -
ExtAspNet_v2.3.2_dll
2010-09-29 14:37:08-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -... -
ExtAspNet v2.2.1 (2009-4-1) 值得一看
2010-04-01 09:41:27-修正Expanded项和Checked项的状态在回发改变后不能保持的BUG。 -GetNodeById更名为FindNode,保持和FindControl一致命名。 -删除CheckedNodeIDArray属性,增加GetCheckedNodes和GetCheckedNodeIDs函数。 -... -
不知道它们之间有什么区别和联系?各有什么作用?(请查阅1. 分数线简介) 想了解近几年的国家线?(请查阅 2. 国家线) 想了解近几年北邮的校线?各个院的院线、组线?(请查阅 3 校线、 4 院线、 5. 组线) 想了解...
-
Google Android开发入门与实战(09年度畅销榜TOP50)--详细书签版
2013-02-08 12:00:471.4.2 模拟器和真机的区别 4 1.4.3 模拟器使用注意事项 4 1.5 更上一层楼——加入Android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建Android开发环境 7 2.1 开发Android应用前的准备 7 ... -
C# Winform数据库应用设计(附开发案例
2021-02-07 13:30:42有一些不同的地方,因此我们在学习的时候需要注意它们之间的区别,不要混淆。在本章中, 我们需要掌握c#中的变量、数据类型、运算符、条件、分攴、循环等基C排基础语法,这些 语言层血的知识是我们编写所有程序的基础,... -
P2P视频播放器 详细制作实例
2009-12-21 17:28:09对于TS和CP(SP)来说, 最大的区别是TS使用UDP协议, 而CP和SP则使用TCP协议, 二者的 不同在于: 1) 对于TCP协议的客户端, 由于每个客户端都使用不同的socket, 因此select之后 只需要看各个客户端的fd_set是否置位就可以...