小编IHa*_*ion的帖子

应用AVVideoComposition后旋转视频

应用AVVideoComposition到我的后AVPlayerItem,我应用的过滤器确实有效,但视频在旋转中旋转AVPlayerLayer.

我知道问题不在于过滤后的帧,因为如果我在a中显示帧UIImageView,则帧会100%正确呈现.

视频显示正确,直到我申请videoComposition.设置videoGravityAVPlayerLayer没有帮助.

视频顺时针旋转90º并在图层中拉伸.

基本上,视频在通过AVPlayerLayer之前AVPlayerItem被完美地显示AVMutableVideoComposition.一旦发生这种情况,视频将旋转-90º,然后进行缩放以适应与过滤前视频相同的尺寸.这告诉我,它没有意识到它的变换已经是正确的,因此它正在重新应用变换本身.

为什么会发生这种情况,我该如何解决?

这是一些代码:

private func filterVideo(with filter: Filter?) {
    if let player = player, let playerItem = player.currentItem {
        let composition = AVMutableComposition()
        let videoAssetTrack = playerItem.asset.tracks(withMediaType: .video).first
        let videoCompositionTrack = composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)
        try? videoCompositionTrack?.insertTimeRange(CMTimeRange(start: kCMTimeZero, duration: playerItem.asset.duration), of: videoAssetTrack!, at: kCMTimeZero)
        videoCompositionTrack?.preferredTransform = videoAssetTrack!.preferredTransform

        let videoComposition = AVMutableVideoComposition(asset: composition, applyingCIFiltersWithHandler: { …
Run Code Online (Sandbox Code Playgroud)

avfoundation ios avvideocomposition cifilter swift

7
推荐指数
3
解决办法
3755
查看次数

Swift 结合径向渐变

想象一下在平面上散布着一些半径的几个径向渐变。渐变的中心是这样排列的,例如:

A     D
  B 
    C
E     F
Run Code Online (Sandbox Code Playgroud)

现在从这些中心中的每一个出来是具有一定半径的径向渐变。我知道如何创建渐变,但我想知道如何在它们重叠时组合这些渐变。

上面的安排看起来像下图。如您所见,(0,0) 处有红色径向渐变,(3,0) 处为蓝色,(1,1) 处为黄色,(2,2) 处为红色,等等,它们都混合在一起. 此外,每个梯度都有不同的半径。

预期效果 1

这是以下排列中径向渐变混合的示例:

       B


A
Run Code Online (Sandbox Code Playgroud)

预期效果 2

我试图找到关于此的阅读,但令人惊讶的是,点击率很少(只有 5 或 6),所有这些都是如何在 Illustrator 或 Photoshop 中执行此操作。我也尝试过自己编程,但问题是遇到梯度交集的时候不知道怎么办;平均颜色是错误的并且出现断断续续的情况,这就是我(相当长的)第一次尝试所做的。

我如何在 Swift 中的 iOS 上将渐变混合在一起的情况下实现这种效果?任何建议、参考或任何东西都非常感谢

gradient radial-gradients ios swift

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

在UILabel swift中绑定多行字符串的rect

我已经尝试了几个小时来找到boundingRect我所拥有的UILabel中的字符串,但似乎没有任何工作.

据我所知,boundingRect返回标签中实际文本的大小,而不是标签的大小或类似的大小.这是真的,对吗?

我有一个UILabel被调用的messageLabel包含一些文本,包含无限数量的行.

我现在的代码是这样的:

let labelRect = (message as NSString).boundingRect(with: messageLabel.frame.size, 
    options: .usesLineFragmentOrigin, 
    attributes: [NSFontAttributeName : messageLabel.font], 
    context: nil)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这为我的文本返回了完全错误的维度.

在多行UILabel中返回文本尺寸的正确方法是什么?

ios swift swift3

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

设置 AVMutableVideoComposition 指令会导致处理程序不被调用

我有一个功能来过滤 AVPlayerItem 的资产。问题之一是设置视频的转换。但是,每当我设置 的AVMutableVideoCompositionInstructionAVMutableVideoComposition,就不再调用处理程序。

这是我的代码:

private func filter(playerItem: AVPlayerItem) {

    let videoComposition = AVMutableVideoComposition(asset: playerItem.asset, applyingCIFiltersWithHandler: { (request) in
        print("Composing") // does not print whenever the instructions are added
        if let filteredImage = filterImage(request.sourceImage) {
            request.finish(with: filteredImage, context: nil)
        } else {
            request.finish(with: RenderError.couldNotFilter) // An error
        }
    })

    guard let videoTrack = playerItem.asset.tracks(withMediaType: .video).first else { return }

    let size = CGSize(width: videoTrack.naturalSize.height, height: videoTrack.naturalSize.width)
    videoComposition.renderSize = size

    let videoInstruction = AVMutableVideoCompositionInstruction()
    videoInstruction.timeRange = CMTimeRange(start: …
Run Code Online (Sandbox Code Playgroud)

image-processing avfoundation ios swift swift4

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

Google Maps iOS SDK热图未呈现

我在此处此处遵循Google Maps iOS SDK 的热图代码,但是热图未在我的地图上呈现。已通过Cocoapods添加了Google Maps API,并使用此桥接标头手动添加了Google Maps iOS Utils框架:

#import "GMUMarkerClustering.h"
#import "GMUGeometryRenderer.h"
#import "GMUHeatmapTileLayer.h"
#import "GQTPointQuadTree.h"
Run Code Online (Sandbox Code Playgroud)

这是添加热图的代码:

func addHeatmap()  {
    heatmapLayer = GMUHeatmapTileLayer()
    heatmapLayer.map = map
    var list = [GMUWeightedLatLng]()
    do {
        if let path = Bundle.main.url(forResource: "police_stations", withExtension: "json") {
            let data = try Data(contentsOf: path)
            let json = try JSONSerialization.jsonObject(with: data, options: [])
            if let object = json as? [[String: Any]] {
                for item in object {
                    let lat = item["lat"]
                    let …
Run Code Online (Sandbox Code Playgroud)

google-maps heatmap ios google-maps-sdk-ios swift

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

样式功能已添加到Google地图

我通过解析GeoJSON向我的GMSMapView添加了功能。但是,在弄清楚如何设置此功能样式时,我遇到了极大的麻烦。

当前,该功能是默认的蓝色笔触和半透明的蓝色填充。我想改变这些颜色。我尝试查看了文档,但这是毫无帮助的。我在互联网上可以找到的所有其他问题都与JavaScript API有关。

如何在Google Map上设置特定功能的样式(仅是GeoJSON文件中的样式)?优选地,这将是动态的,但并非必须如此。

google-maps geojson ios google-maps-sdk-ios swift

0
推荐指数
1
解决办法
426
查看次数