[wpf image 显示图片]看到这张图片你想干什么???

Keras快速上手——打造个人的第一个“圣诞老人”图像分类模型Keras快速上手——打造个人的第一个“圣诞老人”图像分类模型飞鸟客百家号摘要: 本文基于Python和Keras搭建的图像分类模型,任务是判断一张图像中是否含有圣诞老人,模型借鉴于典型的Lenet网络,代码讲解详细,适合快速上手。2017年已到最后一个月的尾巴,那圣诞节还会远吗?不知道各位对于圣诞节有什么安排或一些美好的回忆,我记得最清楚的还是每年圣诞节前一晚那些包装好的苹果,寓意平平安安。那谈到圣诞节,不可或缺的主角——“圣诞老人”会出现在各地的大街小巷、各种画册上,本文将带领读者使用Keras完成“圣诞老人”图像的分类,算是圣诞节前的预热活动吧。在本教程的第一部分,将介绍本文使用的数据集;其次使用Python和Keras训练一个卷积神经网络模型,该模型能够检测一个图像中是否存在圣诞老人,所选的网络结构类似于LeNet网络;最后,在一系列的图像上评估本文搭建的模型,然后讨论一下本文方法的局限性以及如何拓展等。“圣诞老人”和“非圣诞老人”数据集为了训练搭建的模型,本文需要两类图像集:图像含圣诞老人(“圣诞老人”);图像不包含圣诞老人(“不是圣诞老人”)上周我们用谷歌图片迅速获取训练图像数据集,数据集中包含461张有圣诞老人的图像中,如图1(左)所示;此外从UKBench数据集中随机获取461张不包含圣诞老人,如图1(右)所示。基于卷积神经网络和Keras搭建的第一个图像分类器如图2所示,该图是一个典型的Lenet网络结构,最初被用来数字手写体的分类,现将其扩展到其他类型的图像。本教程主要是介绍如何将深度学习应用于图像分类中,所以不会对Keras和Python语句介绍得非常详细,感兴趣的读者可以看下Deep Learning for Computer Vison with Python这本书。首先先定义网络架构。创建一个新文件并命名为lenetpy,并插入以下代码:第2-8行是需要导入的Python包,其中conv2d表示执行卷积,maxpooling2d表示执行最大池化,Activation表示特定的激活函数类型,Flatten层用来将输入“压平”,用于卷积层到全连接层的过渡,Dense表示全连接层。真正创建Lenet网络结构是代码的第10-12行,每当定义了一个新的卷积神经网络结构时,我喜欢:把它放在自己的类中(为了命名空间及便于组织)创建一个静立建造函数,来完成整个模型的建立建立的模型时需要大量的参数:weight:输入图像的宽度height:输入图像的高度depth:输入图像的通道数(1表示单通道图像灰度,3表示标准的RGB图像)claclasses:想要组织的层类别总数第1第4行定义我们的模型,第15行初始化inputshape,第18-19行正常更新inputshape现在我们已经初始化我们的模型,可以开始添加其它层,代码如下:第21-25行创建第一个CONV-&RELU-&POOL层,卷积层使用20个大小5x5的滤波器,之后紧跟RELU激活函数,最后使用窗口大小为2x2的最大池化操作;之后定义第二个CONV-&RELU-&POOL层:这次卷积层使用50个滤波器,滤波器个数的增加加深整个网络体系结构。最终的代码块是将数据“压平”以连接全连接层:第33行能将maxpooling2d层的输出压扁成一个单向量;第34行显示全连接层包含500个节点,然后紧跟一个ReLU激活函数;第38行定义另一个全连接层,该层的节点数等于分类的类别数,Dense层送入softmax分类器输出每类的概率值;第42行返回模型的调用函数;使用Keras训练卷积神经网络图像分类器打开一个新的文件并命名为train_networkpy,并插入以下代码打开第2 - 18行导入程序需要的数据包;下面开始解析命令行参数:这里有两个需要命令行参数,--dataset和--model,以及accuracy/loss图的路径选择。其中--dataset表示模型的训练集,--model表示训练分类器后保存的模型,如果--plot未指定,则默认为plot.PNG。接下来,设置一些训练变量、初始化列表并设置图像路径:第32-34行定义模型的训练次数、初始学习率以及批量大小;第38和39行初始化数据和标签列表,这些列表对应存储图像以及类别标签;第42-44行获取输入图像路径并将图像随机打乱;现在对图像进行预处理:该循环简单的将每个图像的尺寸重新调整为28×28大小(为LeNet所需要的空间尺寸)能够提取标签是由于我们的数据目录结构如下所示:因此,imagePath的一个例子为:从ImagePath提取标签,结果为:下一步,将数据集分为训练数据集和测试数据集:第61行进一步预处理输入数据,按比例将数据点[ 0, 255 ]缩放到[ 0, 1 ]范围内;然后第66-67行将75%数据作为训练集,25%数据作为测试集;第70-71行对标签进行独热编码;随后,通过以下操作增加数据量:第74-76行创建一个图像发生器,对数据集图像进行随机旋转、移动、翻转、剪切等,通过这种操作允许我们能用一个较小的数据集实现好的结果。继续深入学习Keras训练图像分类器:第80-83行使用Adam优化器,由于本文是一个二分类问题,可以使用二进制交叉熵损失函数(binary cross-entropy)。但如果执行的分类任务多于两类,损失函-数更换为类别交叉熵(categorical_crossentropy)第87-89行调用model.fit_generator开始训练网络,第93行保存模型参数,最后画出图像分类器的性能结果:为了训练网络模型,需要打开一个终端执行以下命令:可以看到,当网络训练了25个回合后,模型的测试精度为97.40%,损失函数也很低,如下图所示:评估卷积神经网络图像分类器打开一个新的文件并命名为test_networkpy,然后开始进行评估:第2-7行导入需要的数据包,另外注意导入的load_model是训练过程中保存的模型。下一步,解析命令行参数:需要两个命令行参数:--model和输入--image,然后加载图像预处理:预处理与前面几乎一模一样,这里不做过多的解释,只是第25行通过np.expand_dims对数据额外添加了一个维度,如果忘记添加维度,它将导致调用model.predict时出现错误。现在加载图像分类器模型并进行预测:第29行加载模型,第32行做出预测。最后画出头像以及预测标签:第35行建立标签,第36行选择对应的概率值,第37行将标签文本显示在图像的左上角,第40-42行调整图像大小为标准的宽度以确保它适应电脑屏幕,最后,第45行显示输出图像,第46行表示当一个键被按下结束显示。以下是包含圣诞老人图像的实验结果:以下是不包含圣诞老人图像的实验结果:本文图像分类模型的局限性本文图像分类器有一些局限性:第一个是输入图像尺寸28×28很小。一些示例图像(图像中圣诞老人本身已经很小)调整尺寸为28×28后大大降低圣诞老人的尺寸。最优的卷积神经网络正常接受输入图像大小一般为200-300像素,因此一些较大尺寸的图像将帮助我们建立一个更强大的图像分类器。然而,使用更大的分辨率的图像会加深网络模型的深度和复杂度,这将意味着需要收集更多的训练数据,以及昂贵的计算训练过程。因此,如果各位读者想提高本文模型的精度话,有以下四点建议:收集更多的训练数据(超过5000幅“圣诞老人”图像);利用高分辨率的图像在训练。64×64、128×128像素的图像可能效果会更理想;在训练过程中使用一个更深层次的网络体系结构;阅读Deep Learning for Computer Vision with Python,里面有更多关于自定义数据集等内容的细节;总结本文教你学会利用Keras和Pyhton训练LeNet模型,并用来完成是否含有圣诞老人形象的图像分类,最终目标可以是建立一个应用程序类似于Not Hotdog;“圣诞老人”图像数据集(460幅)是按照之前的教程——通过谷歌图片采集深度学习的图像获得,而“没有圣诞老人”的图像数据集是由从UKBench数据集中挑选得到;在一系列的测试图像上评估本文搭建的网络模型,在每一种情况下,本文模型都能对输入图像分类正确。作者信息Adrain Rosebrock,企业家、博士,专注于图像搜索引擎。本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。飞鸟客百家号最近更新:简介:每天更新最精彩的内容,希望大家喜欢!作者最新文章相关文章教你如何往一张图片分区做链接(一个图片上不同文字做链接)
1: 软件准备 Photoshop& Dreamweave 两款软件
2: 首先准备好你要做超链接的图片 如下:
我们需要对这张图片上的 移动充值 10 20 30 50 100 元分别作链接 同样还有联通电信 充值;
3 用Photoshop 打开这张图片 选择切片工具;
接下来就是把中间需要分区设置链接的地方切下来 如下图所示
然后选择 切片选择工具点划分 在弹出的划分切片中输入你要划分的水平以及垂直区域的个数 如下图所示
划分好以后 点击 左上角的 文件 选择储存为web和设备所用格式
然后就会出现一个网页格式的文件以及一个image的文件夹里面有你保存好的图像
&4:把image文件下下面的图片全部传到你的淘宝图片空间中
5:用Dreamweaver打开储存的网页格式的文件
点拆分会同时显示代码以及图片
点击上面的每个划分区域后的图片就会显示这个图片的相应信息 如 点击10元&
上面中间红框内部为图片的储存位置,我们把原来的储存位置更改为你之前上传到淘宝图片空间里的10元的链接位置,
& 链接位置可以再你的图片空间内
选中这张图片选择复制链接即可,把复制好的链接放到""中间代替原来的图片储存位置;
6:所有图片都编辑好以后 把代码复制好;
7:打开阿里旺旺 选择店铺装修 对要插入图片的位置选择编辑,把代码粘贴进去,即可在店铺装修里面对每个图片进行设置超链接;
8:设置好超链接即可完成;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。图像处理 - 知乎图像处理( Image Processing ),指使用计算机对图像进行一系列加工,以达到所需的结果。常见的处理有图像数字化…阅读全文关注话题分享阅读全文8K733 条评论分享收藏感谢阅读全文6.5K204 条评论分享收藏感谢阅读全文5.9K217 条评论分享收藏感谢阅读全文3.9K104 条评论分享收藏感谢阅读全文3.9K183 条评论分享收藏感谢<strong class="NumberBoard-itemValue" title="2关于&番外特别篇&
所谓&番外特别篇&,就是系列文章更新期间内,随机插入的一篇文章.目前我正在更新的系列文章是 .但是,这两天,被一个自己App中诡异的相册读取的Bug困扰,暂时延缓了文章的更新进度.这个BUG,诡异而又有趣,既然花了10个小时才理清,不妨再投入1个小时,晒出来供大家鉴赏,品玩.
Bug 的详细描述
诡异的画风
此Bug仅在操作多张高像素图片时才会触发,所谓高像素就是图片本身并不算大,但是图片宽高非常大的图片.这次触发这个问题的是一组 5701 * 3171 的图片.画风大家可以点击链接查看原图自行感受下 --
当BOSS刚好是一个摄影爱好者
在大多数情况下,是很少有用户触发这个问题的,但是BOSS是一个摄影爱好者,手机里有许多高像素图,一天他想往自己公司的App上传分享几张图片时,他竟然没法把一次性地从相册选取九张图,每次选中后,点击&确定&,都会理解Crash.是的,就是那九张图,其他图片是没问题的,8张图,也是OK的,他还强调了下是用的最新版本的App.
关于 BUG 的预处理
首先,我的第一反应是肯定是他的手机太烫了吧,重启下,就好了.恩,肯定是这样.发布作品的逻辑,好几个版本都没动过.模拟器,手机,我自己试了下,都是OK的.也没有其他用户反馈过,fabric也看不到任何log.对,手机太烫了.我稍后,再联系他,肯定就OK了.
稍后,再直接联系BOSS,竟然还是会Crash,他甚至给我录屏演示了一下,真的每次都会crash.而且我还无法复现.而且BOSS手机iPhone6 plus,自身内存不足的原因非常非常小.
形势,瞬间变得很紧张,这个问题的优先级瞬间被提到了最高!再次尝试了各种可能的情况.图片大小?它是9张1.5M的图,我就用9张3M的图,也是OK的呀!选取时,顺序有问题?我试着按照录屏中演示的顺序去选取图片,也是OK的.一股深深地无力感!竟然连复现都无法复现不了!
最后的最后,说是会拿手机给我测试.不过,最后BOSS的手机,还是没有拿到,只是拿到了开篇那张画风诡异的图片.没错,就是它,连续选取9张,就Crash了.
至少,我现在能复现问题了.下面的,需要的就只是时间,耐心还有大开的脑洞了.
Bug 分析思路的简要描述
我不觉得,分析Bug真的有什么思路可言.Bug产生的原因,是有许多可能性的,可能行验证的顺序,方式和深度很大程度上取决于coder本身已有的经验,天赋,甚至还有些许的运气!我能描述的,可能仅仅是我处理这个问题的一个相对的完整脑洞过程.部分分析过程间,明显不是有逻辑性的.越是诡异的问题,越是不能循规蹈矩,要时刻尝试去问自己最可能地问题是什么,而不是沿着一条路,一条道走到黑.
1.排除通用逻辑问题
Coder有些许高傲,有时候是有利于自己更冷静地处理问题的.稍微不自信点的童鞋,可能就会怀疑:我代码是不是有什么特殊的临界判断没有加?不行,我得去看看.一行一行,看代码,从天黑到天亮,从期待到绝望...其实,稍微有一些对比实验常识的人,都很容易猜到: 两种情况,唯一的变量是 图片素材本身,那 最可能 的原因肯定是 图片本身的问题.一种高大上的说法,这某种程度上,也暗合了所谓的&贪心算法&.每次,都只从最可能的原因入手,管他谁是谁,我的代码就算有问题,那触发这个问题的可能性,也是远小于 图片素材本身的.---多么朴素的真理呀!
2.确定是相册选取图片内存过高
这个问题,在真机上,并不好确定,因为连续读取9张高像素图时,内存是瞬间飙升的,你几乎没有机会去观察内存占用,给人一种因为某种逻辑判断而导致的Crash的错觉.如果换做模拟器,会很容易看到,这个内存占用,是飙升到G单位的.当然,我也没那么睿智,我是单个N个断点,最终确认了Crash的代码的准确位置.一个for循环,每次step 1,这下很明显地看到内存,几乎是 100M/张的速度在飙升,而图片本身的大小只有 1.5M/张.此处我想说的是,打断点也是有技巧的,最后没有办法的办法也是讲究办法的.可是试着注释掉可能的引起的代码,然后逐步放开注释,这要观察,会比直接打断点快些.--意会!
3.确定是PHImageManager 的问题requestImageForAsset:方法引起的高内存占用
当你通过注释法,配合断点,很容易就可以引起内存高占用的代码.此处,我的App中,是读取相册原图,用的是 PHImageManager 的 requestImageForAsset:targetSize:contentMode:options: resultHandler: 方法.此处接下来的解决思路,有大坑呀!你可能会想,是UIImage加载的问题吧?那就研究下UIImage渲染机制吧.然后1天过去了,等你学成归来,蓦然发现 PHImageManager 是一个系统方法,它加载的图片机制,你无力干涉!我可能运气比较好些吧,研究UIImage的渲染机制,想想都头疼,抱着试一试的态度,我google了下: PHImageManager requestImageForAsset memory high,然后第一条链接的第二个回答就是我要到答案:
是的,我运气,似乎总是很好~
4.使用requestImageDataForAsset:替换的问题requestImageForAsset:
答案原文是:
I found that if i switch from
- requestImageForAsset:targetSize:contentMode:options:resultHandler:
- requestImageDataForAsset:options:resultHandler:
i will receive the image with the same dimension {} but the size in byte is much smaller. So the memory issue is solved.
hope this help !!
(note : [UIImage imageWithData:imageData] use this to convert NSData to UIImage)
简单说,就是用 - requestImageDataForAsset:options:resultHandler: 替换 requestImageForAsset:targetSize:contentMode:options:resultHandler: 就可以了,前者是直接返回二进制数据,不渲染.
但是,这里有一个可能不是问题的问题, 这个方法调用是位于一个名为第三方库 TZImagePickerController 内,我方便直接改吗? 我是直接给改了.此处,将来必成大患,以后再用到,肯定还会有相同问题,还不如直接把原来的实现直接替换掉.当然,这也是成本最小的方法.这个库,本身,已经在App内,深度定制和重写了,如果一些成熟的第三方库,这么做,最好先备份或备注下.
5.使用imageWithData:兼容原来的调用
为了和原来的Api接口调用兼容,用imageWithData:将NSData转换为 UIImage 传出,同时扩展方法,使支持同时传出 UIImage和原始的 NSData对象.传出NSData对象的原因是,是因为高像素图片,会引起一些列的问题,故事到此远远没有结束,详见衍生问题部分.
6.变更前后的代码对比
还是来段代码感受下吧,一码剩千言:
/*原来的代码*/
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFit options:option resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
BOOL downloadFinined = (![[info objectForKey:PHImageCancelledKey] boolValue] && ![info objectForKey:PHImageErrorKey]);
if (downloadFinined && result) {
result = [self fixOrientation:result];
if (completion) completion(result,info);
/*优化后代码*/
[[PHImageManager defaultManager] requestImageDataForAsset:asset options:option resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
UIImage * result = [UIImage imageWithData:imageData];
BOOL downloadFinined = (![[info objectForKey:PHImageCancelledKey] boolValue] && ![info objectForKey:PHImageErrorKey]);
if (downloadFinined && result) {
result = [self fixOrientation:result];
if (completion) completion(result,info,imageData);
此类Bug的可能的通用解决思路
首先,我要说明下,我解决的思路和方式,很大程度上依赖也受限于我已有的经验,此处的解法,可能不是最优解,最多只能算是个通用解.说不定,将来等我再研究下渲染机制一类的技术,会有一个新的更简单的方法.欢迎大神补充!
未来遇到UIImage内存问题的童鞋,至少能从此处获取的一个至少验证可用的解决策略.
回到问题本身,用一句概括就是:永远不要直接传递UIImage对象.在需要传递UIImage的场景中,请使用图片名或者NSData二进制对代替.
衍生问题应用与解决
故事,真的还没有完结.从相册顺利读取这张诡异的高像素图后,我发现我没有办法将它上传,也无法在轮播图上,连续显示.简要概括如下.
无法直接以UIImage格式,连续把九张图保存到缓存目录
图片选取后,并不是立即上传的,为了能实现&重发&功能,需要在缓存目录保留副本.原来是将 UIImage 转换为 NSData写入.在此过程中,又一次引起了巨额的内存开销.解决方法,就是直接缓存原始获取的 NSData 的对象,而不要 NSData --& UIImage --& NSData.
无法直接以UIImage格式,连续在轮播图上显示九张图
此处对应的是一个本地大图预览功能,实现是在前一个页面把九张本地图的UIImage传递给轮播预览组件.此处的坑是: 把一个存放在 数组中的UIImage对象传递给 UIImageView的 image属性,当UIImageView加载到父视图时,会引起巨额的内存占用.原因初步猜测是 UIImage 对象显示到 UIImageView 会有一个特殊的耗费内存的操作,如果原始的 UIImage 对象一直存在,这一块内存那就无法释放.这一步,困扰了我很久很久,好几个小时!我真没想到,一个UIImage对象,竟然会二次引起高内存占用.最终的解决方法,就是在前一个页面传递 NSData数组,在赋值处,再使用imageWithData:转换为 UIImage.这样,内存使用基本没什么起伏.
或许,我应该研究下 一个UIImage对象,竟然会二次引起高内存占用 的原因.欢迎大神完善!
阅读(...) 评论()发布者: mobileui
那个“兴冲冲地在电脑上导入相机刚拍摄的照片,打开PS处理照片,再上传至图片社区”的日子仿佛离我们越来越远。 随着社交平台移动化,我们更关心是否能及时、快速地分享照片。现在,移动端的图像处理应用层出不穷,愈加优秀的手机硬件性能为图像类应用创造了更多可能; 新一代的单反、存储卡自带wifi可与手机传输,也让图片分享更快捷;利用手机自带的硬件传感器以及一些应用的智能算法,甚至可以在手机上完成数码相机做 不到的功能。
毫无疑问,手机拍摄、移动端处理图像,已成为社交平台图片分享的主要路径。本文将通过一些案例,和大家探讨下从PC端转向移动端,图像处理体验将如何更好地适应小屏操作,以及不同类型的图像处理应用在功能设计上不同的偏重。
一、效果一键实现
Photoshop、Lightroom等PC最常用的专业后期软件在功能上大而全,每个细节调整都可能由不同的工具,分多步实现,满足精细调整的需要,处理时间较长。而在移动场景要处理复杂任务,就显得负担过重了,需要更简单高效的操作方式。
各图像APP里的滤镜即是打包了曲线、色调、饱和度等调整的预设,在PC里需要的多步调整简化为了APP里的一键操作,成为了手机图像处理里最常用的功能。
足迹更是整合了图像的剪裁、滤镜、边框、文字和文案功能,一键将普通照片转换成了电影风。虽然早在足迹前,其他应用通过多步操作也可以实现同样效果,但足迹的一键在效率和效果上的提升为它带来了用户的爆发式增长。
以往HDR(即高动态范围图像:利用每个曝光时间相对应最佳细节的低动态范围图像合成的最终图像)在PC上的实现需要将图像的高光压暗,阴影提亮,调高中间调的对比度来还原图像中的更多细节。或是将多张同一构图不同曝光的照片中,每个元素曝光正确的部分选出,合成在一张图像里,过程较为复杂。而Snapseed的HDR效果则只需要一键即可完成,在大大提高效率,降低了后期门槛的同时,实现了非常棒的效果。
二、 使用智能算法,减少手动操作
最早先的人像美容APP更多地依赖用户的手动调整,Facetune需要手动磨皮,点击斑点祛痘祛痣,Line Camera(现为Aillis)常常需要手动定位眼鼻口位置。而当人脸识别算法被大量引入人像处理APP后,磨皮瘦脸只需拉拉滑竿,甚至一键美容即可实现。人脸识别的优势在人像美妆尤为明显。天天P图火爆的疯狂变妆、时尚美妆,自动进行人脸识别五官定位,使得素材妆容完美贴合五官,秒速完成上妆。
PC上常用的抠图方法是用钢笔工具或其他选区工具将主体的轮廓完整地勾勒出来,在移动端受限于屏幕大小和输入设备,没办法用手指轻松涂圈出主体的轮廓。在天天P图的魔法抠图中,则只需要涂一下需要抠出的主体,程序会自动根据色彩信息分辨出主体的轮廓,将其选中。
Anticrop在重新构图,延伸图像的使用上非常简单。在PC上延伸图像起码4步,扩展画布,选中可以复制或延伸的画面,将其复制到空白处,使用仿制印章等修补工具使复制的图像与原图像完美结合。而在Anticrop中,需要复制延展的元素都会直接被计算出来,你所需要做的只是拖动到你想延展的边界为止,填补的活儿就交给它吧。
三、利用手机传感器,在拍摄时就搞定麻烦的后期
早些时候实现一张全景照片非常费劲。需要三脚架固定机位,以便拍摄的多张照片能保持同一水平。同时需要使用相同的曝光、白平衡、ISO,设置较小的光圈才能拍出方便拼接的原片。还需要使用PS进行后期拼接。
而iPhone的全景功能则让全景照片的视线变得非常容易。拍摄全景时,手机自动锁定曝光,根据你移动的轨迹和速度提醒你调节水平和移动速度,并在拍摄同时完成拼接,整个过程仅需几秒。
Camera+在拍摄照片时,会记录下水平仪信息。后期只需要点一下拉直,即可自动完成水平。
四、拆分复杂操作
PS中修正图像畸变是对四个角进行拖拽操作。而在小尺寸屏幕上,对图像四个角进行拖拽的体验并不佳,为了给图像留足够的拖拽空间,画面必须缩小,做细微的调整变得很不便。于是Skrwt将透视拆解成两个纬度,上下透视和左右透视,拖动滑竿来改变透视程度,一次只调整一个纬度,既便于把控细节,操作上又较为方便。
而同样是调整透视和形变的Skew,复制了PC上的交互,操作体验上大打折扣。
五、 专业级APP倾向隐藏功能,大众级APP需要全功能曝光
后期APP如Snapseed,Vscocam是众多摄影师的心头好,但对初次接触的用户来说门槛较高。由于功能多,为了减少干扰,让用户更聚焦在当下效果的调整,菜单项往往被隐藏。例如Snapseed中,添加某一效果时,需通过左右滑动调整效果程度,上下滑动来切换其他平级菜单,界面上并不会有常驻的滑杆和菜单。
Vscocam中要调整滤镜的强度需要二次点击所选滤镜,才会出现强度调整滑杆。在它之前很少有APP隐藏滑杆,而当这种方式逐渐被接受时,越来越多的APP也选择用这样的方式隐藏滑杆,减少画面遮挡。
Skrwt作为图像畸变纠正APP,面向强迫症更强的专业群体。当对当前调整程度不满意时,需要两次点击滑竿来恢复初始值,隐藏了“还原”按钮。
相比之下,Aillis(原为line camera)则是更为大众的一款图像处理APP。所有操作都在界面上有对应的按钮。如下例所示,点击添加渐晕时,出现了调整程度的“详细”按钮,进行程度调整后,出现了取消调整的“重置”按钮。虽然界面元素较多,但方便用户找到他们需要的操作。
六、小众级APP更聚焦单点功能和社交分享
做大而全的功能需要很大人力投入与技术积累,小团队要在功能上对齐,吃力,但不一定讨好。能够让大家眼前一亮的小众APP多是专注在某个特定功能,将体验和效果做到独树一帜。在推广上,引导用户做社交分享,或是专为社交分享设计产品。 Fused是一款专注做重曝(多重曝光:摄影中一种采用两次或者更多次独立曝光,然后将它们重叠起来,组成单一照片)的应用,功能专注,界面布局专为多重曝光而设计。底部有选择前景图片和背景图片的操作区域,可以随时重新选择前景图片和背景图片,也可以方便地进行前后对调。中间的工具可对前景图片、背景图片分别进行调整,操作的逻辑清晰。
而Enlight则是一款多功能应用,重曝在它的操作里是一个叫“合成器”的工具。Enlight的界面布局是为单图后期而设计的,在使用“合成器”时,只能添加前景图片,对前景图片做调整,无法修改背景图片,也无法对调前后图片,这样两图要充分融合会有一定困难。
Frontback是一款为社交而生的图片应用,功能非常简单。用前置摄像头拍下你,后置摄像头拍下你看到的场景,拼成一张图,叙述了一个完整的“你在干什么”的故事,非常适合分享。
专业的数码相机和数码后期在摄影的地位虽无法撼动,但在移动时代,数码图像处理的变化已经悄然发生,“手机摄影”已然成为了一种新的标签。在做移动端的图像处理时,要更多地考虑移动场景对效率和分享的追求,充分利用平台优势,创造更适合的图像处理体验。
原文来自:
向您推荐:
经常遇到很多伙伴咨询如何去提升专业、练习应该怎么去做、灵感从哪里来等等问题。结合这些问题总结和梳理了一下自己的点滴经验,希望能帮助到大家,与之共勉。
本文的目的是给刚入行的新人分享个&
每当苹果公布新的壁纸,总会有人或者手机厂商去模仿苹果家的壁纸,因为他家的壁纸是真的好看啊。今天我们来学习一下最新的iPhone8和 iPhone x的壁纸是怎样做出来的?
值得注意的是,&
被iPhone X刷了一天屏,到下午实在受不了各种标题写着“iPhone X 适配、指南、设计稿” 内容却是发布会回顾和手机介绍的标题党。索性自己写一篇只针对iPhone X适配的贴子,与适配无关的内&
@Echo 由于iOS 和 Material Design的组件体系有些不一样,所以关于组件的分类体系我会分iOS篇和Android篇来讲解,本篇文章为iOS 篇。
对于大部分入门设计师及中级设&
如果你关注过一些取得大成就的人,总会在他的成长故事中发现很多传奇的经历,比如少年时代的天赋异禀,或是30、40岁的大器晚成,为了做好某件事的废寝忘食等等…然后摸摸自己的胸脯说,他们是天才,我只是个普通&
@Micu设计你是美工?还是设计师?你是合格的设计师吗? 设计工作中最基础的修图会吗?找素材拼图会吗? 如果这最基础都不会,能称自己是设计师吗?能漫天要价吗? 如果有点职业道德,先学会最基础的修图,再谈设计吧! 一起看看别人是如何将图片合成的! 第1组:采集素材 完成设计: 第2组: 第3组: 第4组: 第5组: 第6组: 第7组: 第8组: 第9组: 第10组: 第11组: 第12组: 第13组: 第14组: 第15组: 第16组: 第17组: @Micu设计投稿,自 weibo
从2011年开始接触APP,到现在为止也做了几个了,发现了一个共同点就是和每一个技术搭档切图的时候,会遇到不同的问题,因为技术的水平高低有限,所以他们要求你给切图的时候也会不一样,针对切图后来我总结了一套规律分享给大家,希望互相学习~ 相关阅读: 设计师需要掌握的图片原理与优化技巧 Android设计中的.9.png 切图小贴士 一.android版 在做android版本设计的时候,尺寸有很多种,这时我们要以一种尺寸为基准,那这个基准尺寸是480px*800px,设计图完成之后就开始切图了,我拿我之前设计的一张图为例子讲解下:
当看到上边这张设计图的时候,我们首先分析下应该给技术切哪些图(为了避免以后少改动,建议切图之前最好和技术先沟通下,怎么切); 1、底部栏目的icon和背景:
这个一般有2种切法:(有默认和选中之后的效果)
2、顶部栏目的背景切图: 由于顶部导航栏的是渐变样式,所以切图只需要切一小条,技术来平铺拉伸就可以~(PS:如果是花纹背景,就必须切整条了,因为花纹切一小条就会被拉伸了~) 3、标注文字大小和行间距:(以这张图为例子,我标注好了,请看下图) 需要注意的: A:android主要有3种屏,即: QVGA和WQVGA屏density=120; HVGA屏density=160; WVGA屏density=240; B:apk的资源包中, 当屏幕density=240时使用hdpi标签的资源 当屏幕density=160时使用mdpi标签的资源 当屏幕density=120时使用ldpi标签的资源; C:我们标注的是PX,但是技术的算法是DP,所以需要PX和DP进行转化,PX和DP的转化主要跟密度有关系,当密度density=160即(屏幕尺寸:320*480)时,1PX=1DP;当密度density=240即(屏幕尺寸:480*800)时,1PX=0.75DP;当屏幕的尺寸大于480*800的时候,密度都按照240计算即可;当密度density=120即(屏幕尺寸:240*320)时,这个现在几乎没有人用了,所以我也不知道转化公式,如果您知道,可以留言告诉我啊~ 注意:因为我们做的是基于480*800尺寸的,大家都知道android的尺寸太多了,要想适配现在流行的尺寸,比如:640*960;720*1280等,唯一的解决办法就是图标可以根据不同尺寸各做一套,也就是图标需要做480、640和720共3套图标,不过如果你们的产品的要求不严格,做一套就可以,只不过是在大于480尺寸的屏幕上有些图标被拉大变虚而已~ 二.ios版 在做ios版本设计的时候,尺寸有3种,分别是:320*480、640*960、640*1136;这时我们要以一种尺寸为基准,那这个基准尺寸是640px*960px,设计图完成之后就开始切图了,我拿我之前设计的一张图为例子讲解下:
当看到上边这张设计图的时候,我们首先分析下应该给技术切哪些图(为了避免以后少改动,建议切图之前最好和技术先沟通下,怎么切); 1、底部栏目的icon和背景:
这个一般有2种切法:(有默认和选中之后的效果)
2、顶部栏目的背景切图:
由于顶部导航栏的是多颜色的,所以只能切一整条给技术,商圈的图标要单独切出来
3、二级标题栏目的切图: &
周陟 (@UCDChina 深圳负责人、交互设计专业委员会(@IxDC)部长) :我发现一个问题,大部分刚入行或者经验不多的设计师在碰到问题的时候都喜欢”索取”,最好有个现成的东西放那儿给他供着。这暴露了我们设计师群体一个严重的现状——自学能力的欠缺。 我上次提到设计师的三大素质(我自己觉得是这样,也是招人的时候重点考察的),这次就专门聊聊自学能力的问题,与各位打拼靠自己的朋友共勉。 作者还有一篇很有意思的分享:普通UI设计师与顶级UI设计师的区别是什么? 什么是设计师的自学能力? 我们对自学能力的理解是从上学的时候建立的,但那个时候的”自学能力”相对单纯,无非也就是如何通过自己看书、做题,复习到达熟练记忆,以便应付各种苛捐杂税式的考试。 但进入设计行业后,这个自学能力不仅仅限制在”了解知识、复述知识”的范围,设计师要学习各种软件,学习如何寻找灵感,学习如何与客户沟通,学习怎样规划自己的行业前景……这种交叉性的自学要求会成为很多人的屏障。并且,很难定义一个所谓的”自学能力”的量化目标。 就我个人理解,设计师的自学能力是使用合适的时间、方法、资源达到独立的、正确的解决问题的能力。 如何才能有效的自学? 你细心的话,应该注意到上面我的用词,这些关键点就是有效自学的途径。在设计这个行当,光努力是不够的,我们不只是要强调效率,也要强调效能。回过来看,你们学校历史中是不是总有那么几个无论如何努力都始终分数不高的货色? 首先是合适的时间; 如果一件需要花时间的学习任务超出了你的时间成本,你就不应该去碰它,或者换一个更好的方式,比如:你现在是一个从事了8年平面设计的设计师,你觉得目前做动画的收入高,你希望通过自学动画,然后跨行到这个领域,那么未必是最好的选择,首先你的8年的平面经验几乎没有再升值的空间,其次作为一个新人,也许你还要3年的等待,好死不死,你的脑子不错,等到你学有所成,动画行业又是另一个新的天地了。 正确的方法是重要的; 方法不仅是你练习的方式,还有思考问题的方式,这里强调的是设计师快速发现问题的能力,只有准确的了解需要自学的领域的难度、行业标准、设计思路、应用形态,你才知道从何入手; 比如:你想自学网页设计,并把网页视觉设计师作为自己的职业发展,你就应该首先了解,一个网站的基本结构,每个结构需要哪些工作岗位,他们的职责有何不同,一个网站视觉设计师应该干什么,抓住重点(而不要一开始去学什么HTML代码,那不是你最该关心的,我这话是说给某个朋友听的)。 资源指的是任何能够让你了解到所需知识的平台; 基础的东西先看维基和google,然后去书店翻一翻行业著作,然后下载一些软件的学习版知道你要使哪些工具,这些都是你的资源,如果凑巧你还能找到一些资深的从业人士咨询就更好了,但是要提醒的是,别人没有义务回答你,所以你先要准备好自己的问题。 独立性决定了你在自学途径中对自己的要求;你善于坚持的品质是你能够成功通过自己的努力达到目标的前提条件,在你周围没有更多的资源可以利用的时候,你只能靠自己不断的练习,思考。我发现要求很多设计师练习没有问题,要求他们思考却很难,自学的过程中,”想”永远是最关键的。 自学不是万能灵丹 你的性格不适合自学。这是正常的,有部分朋友他们的性格天生就是依赖性强,缺乏主见,在遇到困难的时候选择逃避,那么这样的性格想完全通过自学来达到一个”好高骛远”的目标是不太可能的。你需要选择一个付费的培训机构或者老师,通过一些外部的压力,让你有所提高。 除了自学还应该参与交流。交流当然是重要的,通过交流可以达到解惑的效果,有个前提需要注意,你要和别人交流,别人也需要知道值得和你交流,因此你要有所储备,交流既然是平等的也就需要基础,别以菜鸟之心度老鸟之腹,既冷了场又露了怯。 自学的技术必须转化为实际项目。你的自学有可能是为了自我提升,自我积累设计经验,但如果是为了解决实际问题,那么你自学的成绩就必须经过实际项目的检验,比如:你学习了一些新的交互设计的工作技巧,那么在你自己从事项目的时候你就应该争取机会导入进去,否则到头来,你也只是做了一嘴的好交互。 “人一定要靠自己”,说的不是抛弃阶级感情和团队协作,而是面对困难和障碍的时候,往往只有你自己才是靠得住的。缺乏自学能力的设计师,从性格与技能上都会落于下风,因此请不要让自己”被飞”的日子来得太早。 原文出处:《闲言碎语:周陟设计随笔》,感谢作者的无私分享,推荐童鞋们阅读原著,受益无穷 : ) & &
移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。 加上Android生态中纷繁复杂的各种奇葩尺寸,现在APP设计开发必须考虑适配大、中、小三种屏幕。所以如何做到交付一套设计稿解决适配大中小三屏的问题?设计和开发之间采用什么协作模式?一个基本思路是: 1、选择一种尺寸作为设计和开发基准; 2、定义一套适配规则,自动适配剩下两种尺寸; 3、特殊适配效果给出设计效果。 & 手机淘宝的iPhone 6/iPhone 6 Plus适配版本即将提交App store审核。先晒一下我们采用的协作模式,再慢慢说明原委。 第一步,视觉设计阶段,设计师按宽度750px(iPhone 6)做设计稿,除图片外所有设计元素用矢量路径来做。设计定稿后在750px的设计稿上做标注,输出标注图。同时等比放大1.5倍生成宽度1125px的设计稿,在1125px的稿子里切图。 & & 第二步,输出两个交付物给开发工程师:一个是程序用到的@3x切图资源,另一个是宽度750px的设计标注图。 & 第三步,开发工程师拿到750px标注图和@3x切图资源,完成iPhone 6(375pt)的界面开发。此阶段不能用固定宽度的方式开发界面,得用自动布局(auto layout),方便后续适配到其它尺寸。 & 第四步,适配调试阶段,基于iPhone 6的界面效果,分别向上向下调试iPhone 6 plus(414pt)和iPhone 5S及以下(320pt)的界面效果。由此完成大中小三屏适配。 & 为什么选择iPhone 6作为基准尺寸? 当面对大中小三种屏幕需要适配的时候,很容易想到先做好一种屏幕,再去适配剩下两种屏幕。第一个决定是到底以哪种屏幕作为设计和开发的基准尺寸。我们选择中间尺寸的iPhone 6(750px/375pt)作为基准,基于几个原因: & 1、从中间尺寸向上和向下适配的时候界面调整的幅度最小。375pt下的设计效果适配到414pt和320pt偏差不会太大。假设以414pt为基准做出很优雅的设计,到320pt可能元素之间比例就不是那么回事了,比如图片和文字之间视觉比例可能失调。 & 2、iPhone 6 plus有两种显示模式,标准模式分辨率为,放大模式分辨率为(即iPhone 6的1.5倍)。可见官方系统里iPhone 6和iPhone &
初涉移动端设计和开发的同学们,基本都会在尺寸问题上纠结好一阵子才能摸到头绪。我也花了很长时间才弄明白,感觉有必要写一篇足够通俗易懂的教程来帮助大家。从原理说起,理清关于尺寸的所有细节。由于是写给初学者的,所以不要嫌我啰嗦。 现象 首先说现象,大家都知道移动端设备屏幕尺寸非常多,碎片化严重。尤其是Android,你会听到很多种分辨率:480&#215;800, 480&#215;854, 540&#215;960, 720&#215;&#215;1920,而且还有传说中的2K屏。近年来iPhone的碎片化也加剧了:640&#215;960, 640&#215;&#215;&#215;2208。 不要被这些尺寸吓倒。实际上大部分的app和移动端网页,在各种尺寸的屏幕上都能正常显示。说明尺寸的问题一定有解决方法,而且有规律可循。 像素密度 要知道,屏幕是由很多像素点组成的。之前提到那么多种分辨率,都是手机屏幕的实际像素尺寸。比如480&#215;800的屏幕,就是由800行、480列的像素点组成的。每个点发出不同颜色的光,构成我们所看到的画面。而手机屏幕的物理尺寸,和像素尺寸是不成比例的。最典型的例子,iPhone 3gs的屏幕像素是320&#215;480,iPhone 4s的屏幕像素是640&#215;960。刚好两倍,然而两款手机都是3.5英寸的。 所以,我们要引入最重要的一个概念:像素密度,也就是PPI(pixels per inch)。这项指标是连接数字世界与物理世界的桥梁。 Pixels per inch,准确的说是每英寸的长度上排列的像素点数量。1英寸是一个固定长度,等于2.54厘米,大约是食指最末端那根指节的长度。像素密度越高,代表屏幕显示效果越精细。Retina屏比普通屏清晰很多,就是因为它的像素密度翻了一倍。 倍率与逻辑像素 再用iPhone 3gs和4s来举例。假设有个邮件列表界面,我们不妨按照PC端网页设计的思维来想象。3gs上大概只能显示4-5行,4s就能显示9-10行,而且每行会变得特别宽。但两款手机其实是一样大的。如果照这种方式显示,3gs上刚刚好的效果,在4s上就会小到根本看不清字。 在现实中,这两者效果却是一样的。这是因为Retina屏幕把2&#215;2个像素当1个像素使用。比如原本44像素高的顶部导航栏,在Retina屏上用了88个像素的高度来显示。导致界面元素都变成2倍大小,反而和3gs效果一样了。画质却更清晰。 在以前,iOS应用的资源图片中,同一张图通常有两个尺寸。你会看到文件名有的带@2x字样,有的不带。其中不带@2x的用在普通屏上,带@2x的用在Retina屏上。只要图片准备好,iOS会自己判断用哪张,Android道理也一样。 由此可以看出,苹果以普通屏为基准,给Retina屏定义了一个2倍的倍率(iPhone 6plus除外,它达到了3倍)。实际像素除以倍率,就得到逻辑像素尺寸。只要两个屏幕逻辑像素相同,它们的显示效果就是相同的。 Android的解决方法类似,但更复杂一些。因为Android屏幕尺寸实在太多,分辨率高低跨度非常大,不像苹果只有那么几款固定设备、固定尺寸。所以Android把各种设备的像素密度划成了好几个范围区间,给不同范围的设备定义了不同的倍率,来保证显示效果相近。像素密度概念虽然重要,但用不着我们自己算,iOS与Android都帮我们算好了。 如图所示,像素密度在120左右的屏幕归为ldpi,160左右的归为mdpi,以此类推。这样,所有的Android屏幕都找到了自己的位置,并赋予了相应的倍率: ldpi [0.75倍] mdpi [1倍] hdpi [1.5倍] xhdpi [2倍] xxhdpi [3倍] &
三个不同质感的苹果LOGO图标
Adobe今天正式宣布了新一代面向设计、网络和视频领域的终极专业套装“Creative Suite 6”(简称CS6),包含四大套装和十四个独立程序。与此同时,Adobe还发
自从五年前iPhone发布以来,苹果从来就没打算为iOS设备提供任何物理控制器支持。为iOS提供笔或其他控制附件,一直是苹果所嘲笑的事,但这并不影编者按:微软携Windows 8来势汹汹,但消费者并不买账。本文作者认为,由于Windows已经在消费者头脑里形成劣质的观念,要想继续沿用这个品牌来获得成
如果 Moto X 的高可定制性已经让你啧啧称赞的话,Motorola 这家 Google 公司刚刚宣布的模块化硬件开发平台 Ara 更是让你大开眼界。Ara 给自己的定位是
Tubik Studio :我们的日常生活中总是面临着无尽的选择,大量的挑战。设计的决策也是如此,一...
在业务迭代周期内,产品经理和设计师对要做的产品需求和功能点进行需求分析和设计讨论的过程中,有时会出现...
在过去的2年当中,设计领域一直在探讨UX写作(UX Writing)这一“新兴”的设计分支。实际上,...
莫贝网(www.mobileui.cn)移动设备界面设计专业网站。为UI设计师提供手机界面设计,移动应用界面设计,平板电脑界面设计,导航界面设计等手持移动设备,移动终端界面设计相关知识的收集分享,共同学习的网站。
关注微博:

我要回帖

更多关于 image 返回多张图片 的文章

 

随机推荐