截图软件哪个好用拍照如何隐藏UI的方法

unity里面 高通AR截图,怎么截取除去界面上按钮的部分
[问题点数:20分]
本版专家分:0
结帖率 50%
CSDN今日推荐
本版专家分:0
本版专家分:0
本版专家分:0
匿名用户不能发表回复!|
其他相关推荐
进入https://developer.vuforia.com选择Resource,我们可以看到高通提供多种版本的开发包,这里我们选择
下载好后导入unity
将下载好的识别图的unity包也导入进来
删掉main camera,搜索AR Camera并将其拖到Hierarchy,同样的将ImageTarget也拖进来,对ImageTarget进行修改,Data Set修改为识别
增强现实(AR)在国内也兴起有一段时间了,做了一年的AR开发,真心觉得用高通的那一套要实现最基本的功能很简单,当然要做出很棒的AR,仍需同志们努力啊。在网上看了一些别人写的教程,说实话,虎头蛇尾,可能国内就是这种情况,自己会的肯定不能让别人会,不然自己还混什么饭吃。现在学AR的人也越来越多了,我觉得把信息(注意是信息,不是技术,真心不难,连行代码都木有,所以大家发明创造的机会来了)贡献出来应该不会
直接上代码:
using System.IO;
void Update () {
if(Input.GetKeyDown(KeyCode.A))
StartCoroutine(getScreenTexture());
//unity 自带截屏,只能是截全屏
Application.CaptureS
前段时间不仅要忙公司的事,还要准备期末考试,好久没到CSDN来了,看到自己写的教程有这么多人参考,决心再接再厉,这篇教程就讲讲怎么做video形式的增强现实。(自己做了个例子,少女时代http://v.youku.com/v_show/id_XNjg3MjgyMTA0.html)
高通的SDK好像没有video的预制件,所以我一般都下载最新的samples,里面有我们需要用到的预
今天,在公司做的第一款AR项目终于在苹果appstore上架了。将近三个多月的踩坑和摸索也终于告一段落了,接下来就是不断的进行版本优化和更新,这将是一个漫长的过程。在
此,对自己三个多月的开发做一个阶段性的总结,也希望能帮到一些正在用unity开发AR应用的朋友。
实现功能:扫描到识别图显示模型的同时播放对应的声音,移走识别图暂停播放,再识别时从上次暂停的地方开始播放。
基本流程:
(1)在Hierarchy面板的空白处 右键,选择 Create Empty 创建空组件(重命名为Audio_X),
在Audio_X组件上 右键 选择Audio下的Audio Sourse 添加Audio Sourse组件并且重命名,
将声音文件拖到
在之前的文章中我们已经实现了基本的图片识别,并在识别的图片上显示3D模型,但是有的时候我们实际上需要在识别的图片上播放一段视频,那么接下来我们就来说说如何实现这样的操作。
一、资源下载:
这里我们需要准备的资料如下:
1.一段.m4v格式的视频:
其他格式的视频可以通过格式转换成.mp4格式,然后修改后缀名为.m4v,即mp4和m4v是可以互转的;
2.Vuforia官方
原文前面的介绍之类的就略过了~直接从导入组件开始~一、导入Vuforia组件
从Unity官网下载并安装Unity2017.2或者更新版本。接受Unity的条例。
在选择组件(Components)环节,从组件选择窗口中选择需要的平台支持组件(IOS,Android,UWP)以及主角(Vuforia Augmented Reality Support ),然后点击继续(Cont...
一、AR概念:
增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实。是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息应用到真实世界,并将计算机生成的虚拟物体、场景或系统提示信息叠加到真实场景中,从而实现对现实的增强。
二、工具:
在这里我们主要是用高通的Vuforia SDK来演示
1.首先登陆高通网站注册自己的账号。(纯英文真难受。。。)
https://developer.vuforia.com
2.Download里下载对应的SDK
3.选择Develop-&Target Manager
添加一张图片名
生成以后点击创建的名字,create 添加图片
生成好选择下载图片,选择unity editor
4.在license Manager里生成自己的一做一名合格的程序员
UIView之截屏操作
//截屏操作全屏
-(UIImage *)snapshotImage{
// 1.开启上下文
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, 0);
// 2.将控制器view的layer渲染到上下文
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
// 3.获取图片
UIImage *snapshotImage=UIGraphicsGetImageFromCurrentImageContext();
// 4.结束上下文
UIGraphicsEndImageContext();
return snapshotI
//自iOS7开始,UIView类提供了一个方法-drawViewHierarchyInRect:afterScreenUpdates:,它允许你截取一个UIView或者其子类中的内容,并且以位图的形式(bitmap)保存到UIImage中,包括UIKit,Quartz,OpenGL ES,SpriteKit等等。在iOS6以及更早的版本中,怎样对UIView截屏从本质来说取决于绘制技术(drawing technique)。
//看下面的代码示例,在iOS7及以上更高版本中,使用-drawViewHierarchyInRect:afterScreenUpdates,截取一个View中内容.
- (UIImage *)snapshotImageAfterScreenUpdates:(BOOL)afterUpdates {
if (![self respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) {
return [self snapshotImage];
UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, 0);
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:afterUpdates];
UIImage *snap = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//截屏部分区域
- (UIImage *)screenshotWithRect:(CGRect)
UIGraphicsBeginImageContextWithOptions(rect.size, NO, [UIScreen mainScreen].scale);
CGContextRef context = UIGraphicsGetCurrentContext();
if (context == NULL)
CGContextSaveGState(context);
CGContextTranslateCTM(context, -rect.origin.x, -rect.origin.y);
if( [self respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)])
[self drawViewHierarchyInRect:self.bounds afterScreenUpdates:NO];
[self.layer renderInContext:context];
CGContextRestoreGState(context);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
截屏实现,将UIView指定区域转换成图UIImage
iOS 如何把view转成image,截屏分享/ 整个视图的分享。
UIView截屏
ios开发-屏幕截图(UIView转为图像存储到本地)
IOS给任意UIView截屏
某个UIView控件单独进行截图
UIView截图
没有更多推荐了,博客分类:
首先创建一个UIImage类别,如下:
@interface UIImage(UIImageScale)&
-(UIImage*)getSubImage:(CGRect)&
-(UIImage*)scaleToSize:(CGSize)&
@implementation UIImage(UIImageScale)&
//截取部分图像&
-(UIImage*)getSubImage:(CGRect)rect&
&&& CGImageRef subImageRef = CGImageCreateWithImageInRect(self.CGImage, rect);&
&&& CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));&
&&& UIGraphicsBeginImageContext(smallBounds.size);&
&&& CGContextRef context = UIGraphicsGetCurrentContext();&
&&& CGContextDrawImage(context, smallBounds, subImageRef);&
&&& UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];&
&&& UIGraphicsEndImageContext();&
&&& return smallI&
//等比例缩放&
-(UIImage*)scaleToSize:(CGSize)size&&
&&& CGFloat width = CGImageGetWidth(self.CGImage);&
&&& CGFloat height = CGImageGetHeight(self.CGImage);&
&&& float verticalRadio = size.height*1.0/&&
&&& float horizontalRadio = size.width*1.0/&
&&& float radio = 1;&
&&& if(verticalRadio&1 && horizontalRadio&1)&
&&&&&&& radio = verticalRadio & horizontalRadio ? horizontalRadio : verticalR&&&&
&&&&&&& radio = verticalRadio & horizontalRadio ? verticalRadio : horizontalR&&&&
&&& width = width*&
&&& height = height*&
&&& int xPos = (size.width - width)/2;&
&&& int yPos = (size.height-height)/2;&
&&& // 创建一个bitmap的context&&&
&&& // 并把它设置成为当前正在使用的context&&&
&&& UIGraphicsBeginImageContext(size);&&&
&&& // 绘制改变大小的图片&&&
&&& [self drawInRect:CGRectMake(xPos, yPos, width, height)];&&&
&&& // 从当前context中创建一个改变大小后的图片&&&
&&& UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();&&&
&&& // 使当前的context出堆栈&&&
&&& UIGraphicsEndImageContext();&&&
&&& // 返回新的改变大小后的图片&&&
&&& return scaledI&
然后在下面方法里面调用就可以了!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
&&& // Override point for customization after application launch.
&&& UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://img21.mtime.cn/mg//49978.jpg"]] ];
&&&
&&& // 裁剪图片
&&& //image = [image getSubImage:CGRectMake(10, 10, 70, 80)];
&&&
&&& //等比列缩放
&&&
&&& image = [image scaleToSize:CGSizeMake(200, 300)];
&&&
&&& UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
&&&
&&& [self.window addSubview:imageView];
&&&
&&& NSLog(@"image.size:%@",NSStringFromCGSize(CGSizeMake(imageView.image.size.width, imageView.image.size.height)));&& //打印获取的网络图片的宽度和高度
&&&
&&& [self.window makeKeyAndVisible];
&&& return YES;
}
//--------------截取部分图片到指定位置-------------------------
图片(UIImage*) img
要截取的起始坐标sx:(int) sx1 sy:(int)sy1
要截取的长度和宽度sw:(int) sw1 sh:(int) sh1
最终要显示的坐标desx:(int) desx1 desy:(int)desy1
-(UIImage*)objectiveDrawRegion:(UIImage*) img sx:(int) sx1 sy:(int)sy1 sw:(int) sw1 sh:(int) sh1 desx:(int) desx1 desy:(int)desy1{
[self saveImage:img name:@"objectiveDrawRegion1.png"];
//创建图片缓冲
void *imageDataRegion=malloc(screenWidth*screenHeight*32);
CGColorSpaceRef iColorSpaceRegion=CGColorSpaceCreateDeviceRGB();
&&& CGContextRefiDeviceRegion=CGBitmapContextCreate(imageDataRegion,screenWidth,screenHeight,8,4*screenWidth,iColorSpaceRegion,kCGImageAlphaPremultipliedLast);
//剪切区域
&&& CGRect clipRegion=CGRectMake(sx1,sy1,sw1,sh1);
&&& CGContextClipToRect(iDeviceRegion, clipRegion);
&&&
&&& CGFloat widthf=img.size.
&&& CGFloat heightf=img.size.
CGRect& cg=CGRectMake(0.0, 0.0, widthf, heightf);
//画底图
&&& CGContextDrawImage(iDeviceRegion,cg, img.CGImage);
//将缓冲形成图片
&&& CGImageRef ioffRegion=CGBitmapContextCreateImage(iDeviceRegion);
&
CGRect& cg1=CGRectMake(desx1, desy1, sw1, sh1);
UIImage *ui=[UIImage imageWithCGImage:ioffRegion];
CGContextDrawImage(当前context,cg1, ui.CGImage);
//清除缓冲
&& CGColorSpaceRelease(iColorSpaceRegion);
&& CGContextRelease(iDeviceRegion);
&& CGImageRelease(ioffRegion);
&& free(imageDataRegion);
//&&& iDeviceRegion=NULL;
//&&& imageDataRegion=0;
浏览 33869
浏览: 122669 次
来自: 北京
非常不错,解决了我的问题 赞一个!!!
chflags nohidden /Users/用户名/Lib ...
好东西,!0.0
学习了,不错。。。
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'(ERROR:15) & 访客不能直接访问在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
LZ需要在拍照的时候调用截屏的方法让用户保存此时拍的图片,但是上面会有一些标注的地理位置,天气,时间等使用UILabel显示的,非图片~
使用UIScreengetimage这个私有API是无法通过上传的,更不可能审核通过。但使用这个办法UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size));
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);无法获取到相机取景框内的照片,是一片黑~想请问下是否还有其他的办法可以解决~
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看你的需求,获取照片,获取截图,拼一下就好了吧
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。}

我要回帖

更多关于 截图软件哪个好用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信