小编use*_*946的帖子

NSDictionary没有正确存储CGRect?

我似乎有存储问题CGRectNSDictionary.我正在使用的代码:

dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Crocodile", [NSValue valueWithCGRect:CGRectMake(100,100,200,200)], nil];
Run Code Online (Sandbox Code Playgroud)

从我读过的内容来看,我应该将其包装CGRect成一个NSValue并将其存储到字典中.

但是,当我尝试使用NSLog它时,该值将返回{{0,0},{0,0}}

NSLog(@"Crocodile value is: %@", NSStringFromCGRect([[dictionary objectForKey:@"Crocodile"] CGRectValue]));
Run Code Online (Sandbox Code Playgroud)

我检查了我的字典计数,似乎插入了项目.我不确定这在哪里失败了.我还试图通过创建一个CGRectvar,然后是一个NSValuevar 来手动分解它,并将其粘贴到具有相同结果的字典中.

任何帮助赞赏.谢谢

谢谢.

iphone objective-c ipad ios

9
推荐指数
2
解决办法
6270
查看次数

确定CGPoint是否在图像区域内

我想弄清楚CGPoint是否位于图像的形状内.图像是简单的黑色形状,例如下面附着的两个.我想创建一个方法来确定CGPoint是否位于该形状的黑色区域内.

我认为这需要两件事:1)将图像转换为可以用代码读取的东西(不确定这将使用什么样的图像处理或如何)

2)使用它作为参考来确定CGPoint是否位于其中.

任何帮助或想法赞赏.我之前从未做过图像处理类型的编码.谢谢!

在此输入图像描述

iphone xcode ipad ios

9
推荐指数
1
解决办法
662
查看次数

NSRect与CGRect:y轴反转

所以我试图将NSRect转换为CGRect.我使用的NSRectToCGRect()是精确复制所有内容,但没有考虑y原点轴.

问题:(0,0)的CGRect原点是左上角.NSRect原点(0,0)位于左下角.

因此,一个NSRect (0,0,100,100)盒子位于屏幕的左下方,而一个CGRect (0,0,100,100)盒子位于屏幕的左上角.

我有一个通过基本数学修复y-origin的hack:

fixedOriginY = screenHeight - NSRect.size.height - NSRect.origin.y
Run Code Online (Sandbox Code Playgroud)

因此,相当于一个NSRect (0,0,100,100)实际上CGRect (0,800,100,100)(在我的900px高度MBA).但是我不喜欢这个,我觉得它会破坏视网膜或未来并发症的问题.

有没有人有关于如何正确地将NSRect转换为CGRect的解决方案或想法?

macos cocoa core-graphics

8
推荐指数
1
解决办法
1819
查看次数

imageOrientation返回Up,但照片显示倒置

我正在从iPad照片库中抓取一些照片.我在横向模式下拍了几张测试照片,左边是iPad主页按钮,右边是.

所以在我的应用程序中,由于某种原因,一些照片显示出颠倒.我检查了他们的imageOrientation财产,他们都是0(意思是他们UIImageOrientationUp).这意味着我甚至不知道我需要旋转哪些照片.

发生了什么,我怎么知道哪些照片需要旋转?谢谢

iphone xcode ipad ios

7
推荐指数
1
解决办法
836
查看次数

在iOS应用中使用PDF作为类似矢量的图像,保持透明度?

我最近发现了一篇关于如何将Photoshop PDF文件用作矢量图像的博客文章:http://mattgemmell.com/2012/02/10/using-pdf-images-in-ios-apps/

基本上你可以实现质量可扩展性,我想节省文件大小.

但是,压缩为PDF而不是PNG似乎会破坏透明度,这意味着默认情况下会获得白色背景.

这似乎是一种有趣的技术,但如果我们的PDF可以某种方式保留像PNG这样的透明部分,那将会更有用.有没有人对如何进一步实现这种效果有任何想法或技巧?谢谢

iphone xcode vector-graphics ios

6
推荐指数
1
解决办法
2054
查看次数

mp4视频在Quicktime/AVplayer与Chrome/Firefox上的不同时间开始播放

我有一个非常奇怪的问题.我的OSX应用程序正在生成基于屏幕投射的mp4视频.出于某种原因,如果我在Quicktime或任何基于OSX的AVPlayer中打开此视频,它将在第0帧之前大约14-15帧开始.如果我使用Chrome或Firefox打开mp4,它实际上将在第0帧开始播放.

什么可能导致忽略开始帧?这是一个计时器倒计时的屏幕截图,比较Quicktime与Firefox在零时间.注意Firefox播放器如何在9:55启动,而Quicktime播放器则跳到9:54. 在此输入图像描述

这是我的样本mp4文件,如果你想亲眼看看.

谢谢

video mp4 quicktime avfoundation avplayer

6
推荐指数
2
解决办法
659
查看次数

TrueDepth 相机前景分割,改善遮罩效果

我正在查看一个 Apple 项目,该项目演示了如何使用 TrueDepth 前置摄像头将人与背景分开。你可以在这里看到:

https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/enhancing_live_video_by_leveraging_truedepth_camera_data

它工作得很好,但是有时如果我旋转我的脸,深度图会丢失一些数据点并剪掉我的脸和耳朵的部分。你可以在这里看到这个例子:https : //streamable.com/cstex

有没有人对如何改进这一点有任何想法?该AVPortraitEffectsMatte对象是完美的,如果你使用AVCapturePhotoOutput,但它似乎并没有对实时视频输入可作为处理时间过长,更新帧。

我注意到Apple的Clips应用程序具有完美的效果,不会夹住我的任何脸或耳朵,并且提供了良好的帧率:https : //streamable.com/5n96h 由于他们的应用程序不会丢失细节,因此不能仅仅依靠关于深度数据。或者,他们正在通过模型运行他们的深度数据以改进它(可能类似于他们用来生成 AVPortraiEffectsMatte 的专有模型)

关于如何获得类似结果或他们如何实现的任何想法?

avfoundation ios avkit truedepth-camera

6
推荐指数
0
解决办法
344
查看次数

静态资产上的 Django CORS

我使用 Django 作为后端,并且遇到了跨源问题,我corsheaders在设置中使用包修复了这些问题。到目前为止,我所有的 GET 端点都可以工作,这要归功于:

CORS_ORIGIN_ALLOW_ALL = True
Run Code Online (Sandbox Code Playgroud)

但是,我现在正在尝试访问 django 后端上的静态文件,其位置如下:

http://localhost:8000/static/image.jpg
Run Code Online (Sandbox Code Playgroud)

然而,浏览器客户端会像以前一样收到熟悉的错误:

Access to XMLHttpRequest at ... from origin ... has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

django cors

6
推荐指数
1
解决办法
1361
查看次数

<StopAccessing> 的 MacOS 内部沙箱错误

我正在构建一个允许用户编辑文件的 MacOS 应用程序。为了访问文件,我使用了一个安全范围的书签,如下所示:

do {
            self.securityScopedBookmark = try asset?.url.bookmarkData(options: .withSecurityScope, includingResourceValuesForKeys: nil, relativeTo: nil)
        } catch {
            print("failed bookmark. error info: \(error)")
        }
Run Code Online (Sandbox Code Playgroud)

当用户完成并且 NSDocument 被取消初始化时,我停止访问书签,如下所示:

   deinit {
        if let securityScopedBookmark = self.securityScopedBookmark {
            do {
                var isStale: Bool = false
                
                let url = try URL.init(resolvingBookmarkData: securityScopedBookmark, options: [.withoutUI, .withSecurityScope], relativeTo: nil, bookmarkDataIsStale: &isStale)
                url.stopAccessingSecurityScopedResource()
            } catch let error as NSError {
                print("Bookmark Access Fails: \(error.description)")
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

但是,当尝试调用 .stopAccessingSecurityScopedBookmark() 时,我收到了几个日志错误。

 [scoped] handle 0: sandbox_extension_release error [22: Invalid argument] …
Run Code Online (Sandbox Code Playgroud)

macos sandbox entitlements appstore-sandbox security-scoped-bookmarks

6
推荐指数
0
解决办法
168
查看次数

如果需要返回它,如何释放CGImageRef?

我有一个方法来调整CGImageRef和返回CGImageRef.问题是最后几行,我需要以某种方式释放,但之后返回.有任何想法吗?谢谢

 -(CGImageRef)resizeImage:(CGImageRef *)anImage width:(CGFloat)width height:(CGFloat)height
{

    CGImageRef imageRef = *anImage;

    CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);

    if (alphaInfo == kCGImageAlphaNone)
        alphaInfo = kCGImageAlphaNoneSkipLast;


    CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), 4 * width, CGImageGetColorSpace(imageRef), alphaInfo);

    CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);

    CGImageRef ref = CGBitmapContextCreateImage(bitmap);

    CGContextRelease(bitmap);
    CGImageRelease(ref); //issue here

    return ref;

}
Run Code Online (Sandbox Code Playgroud)

macos cocoa core-graphics ios

5
推荐指数
1
解决办法
1557
查看次数