問題タブ [phasset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5426 参照

ios - Swift で PHAsset の場所を取得する

何らかの理由locationで、 a のプロパティPHAssetは Objective-c でのみ公開され、Swift では公開されません。

ドキュメント: PHAsset.location

これを回避するために、場所を抽出して Swift にインポートすることのみを目的とする Objective-C クラスを作成できると考えました。

LocationGetter.h

LocationGetter.m

これまでのところは問題ありませんが、Swift で使用しようとすると、次のようになります。

「LocationGetter.Type」には「locationForAsset」という名前のメンバーがありません

locationおまけの質問: 一体なぜ、Appleは迅速に公開しなかったのですか?

0 投票する
3 に答える
9291 参照

ios - PHFetchResult の PHAsset が削除された写真を表しているかどうかを判断するにはどうすればよいですか?

iOS 8 の新しい写真フレームワークを使用して、デバイスで最後に撮影した写真のサムネイルを取得しようとしています。これを行うために現在持っているコードは次のとおりです。

このコードは、デバイスで最後に撮影された写真を取得できますが、デバイスで最後に撮影された写真が削除された場合、その事実は考慮されず、ボタンの画像は で削除された写真に設定されresultHandlerます。これは、iOS 8 では、写真を削除すると、実際にデバイスから削除されるまでに 30 日かかり、何らかの理由でこれらの写真がPHFetchResults に含まれていることが原因であると思われます。

PHAssetに含まれるオブジェクトで「削除済み」または類似の属性を探してみましたがassetsInfo、どのような情報も見つかりませんでした。デバッガーで削除された写真のプリントアウトは次のようになります。

の次のオブジェクトのプリントアウト (assetsInfo私が確認した写真は削除されていません) は次のようになります。

写真が削除されたかどうかを教えてくれる情報はないようです。おそらく属性が役立つと思いましhiddenたが、代わりに、写真が特定の Photos.app アルバム/コレクションに表示されるかどうかに関係しています。属性が役立つのではないかと思いましたassetSourceが、文書化されていないようで、さらに調査したところ、写真の削除ステータスとは関係がないようです。

PHAssetオブジェクトが削除された写真を表しているかどうかを確認する方法はありますか? 「最近削除した」アルバムに含まれる写真を除外するために、取得しているアセットを絞り込む方法はありますか?

0 投票する
1 に答える
313 参照

ios8 - iOS8 の新しい Photos Framework を使用してビデオを再レンダリングする

写真からビデオを取得して再レンダリングできるようにする必要があります。時間内にクリップし、幅と高さ、およびフレーム レートを変更します。確かに私はから始める必要があります:

また、幅、高さ、および期間を調整できる必要があります。そこから NSData を取得し、それをファイル syset.m に書き出します。

しかし、URL は nil です。これは、新しい Photos フレームワークでビデオを編集できないことを意味します。(ALAsset では、AVAssetExportSession を使用してこれに問題はありませんでした。) Apple Dev サンプル コードもビデオを編集できないため、これは理にかなっています。

さて、生活を楽にするために、その URL を AVAssetExportSession に渡すことができましたが、それは nil であるためできません。幅、高さ、および期間を変更した場合でも、そこから NSData を取得し、それをファイル システムに書き込む必要があります。

変更したビデオを写真に書き戻す必要はありません。サーバーにアップロードするので、実際にはファイル システムにビデオが必要です。

0 投票する
2 に答える
1184 参照

ios - PHAsset: 「assetSource」とは何ですか?

PHFetchResult を列挙しています。返される PHAssets で println を実行すると、次のようになります。

assetSource=3ビットが何か知っている人はいますか?可能であればassetSourceで述語を実行したいのですが、それが何であるか、またはそれにアクセスする方法に関する情報がどこにも見つかりません。プライベートですか?

0 投票する
2 に答える
3411 参照

ios - requestImageDataForAsset 結果ハンドラーの形式が不適切です

PHAsset から完全なイメージをリクエストしようとしています。

私のコードは次のとおりです

私はこのエラーが発生しています:

ここに画像の説明を入力

この呼び出しに関するドキュメントを読みました ( https://developer.apple.com/library/IOs/documentation/Photos/Reference/PHImageManager_Class/index.html#//apple_ref/occ/instm/PHImageManager/requestImageDataForAsset:options:resultHandler :)

そして、必要な末尾の構文クロージャーに従い、適切なパラメーターを入力したと思います。

これについては、WWDC 2014 のビデオも見ました。

これを完全なイメージで機能させることはできないようです。

小さいサイズの画像が必要な場合は、次のコードを使用しました。

そして、これは機能します。

したがって、最初の呼び出しで何が間違っているのかわかりませんが、PHAsset からフルサイズの画像を要求する方法や、最初のコード ブロックの構文の何が問題なのかについての洞察が欲しいです。

ありがとう

更新:エラーメッセージは次のとおりです

「'(PHAsset、options:NilLiteralConvertible、(($T6、($T6、$T7、$T8、($T6、$T7、$T8)... ."

0 投票する
4 に答える
13364 参照

ios - 「requestImageForAsset」から返された UIImage のサイズが「targetSize」の設定に近くない

最新の iOS8 フォト フレームの作業を徹底的に読み、ユーザー ライブラリからいくつかのアセットを取得して表示しようとしています。ユーザーに一度に 4 つの画像を編集させます。しかし、このため、画像を圧縮する必要があります。そうしないと、アプリがクラッシュします。

次のコードを使用して、PHImageManager を使用して画像をロードしています。

ご覧のとおり、画像が少なくとも画面より大きくならないように、目標サイズを計算しています。そうであれば、画像の比率を縮小します。ただし、これは典型的な印刷ログです

ターゲット サイズは (768.0,798.453531598513) 結果サイズは (1614.0,1678.0)

ターゲットサイズを768x798に設定していますが(その特定のケースでは)、結果として得られるUIImageはその2倍以上です。ドキュメントによると、 targetSize パラメータ

「返されるイメージのターゲット サイズ。」

最も明確な説明ではありませんが、私の実験ではこれと一致しません。

何か提案があれば、ぜひ聞きたいです!