問題タブ [phassetslibrary]

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 投票する
0 に答える
502 参照

ios - iOS エラー: リソースが見つかりません

iOSデバイスのフォトライブラリで遊んでいます。PHAssetResourceローカルファイルに書き込もうとしています。動作する場合もあれば動作しない場合もあり、エラーが発生しますError: Unable to locate resource <PHInternalAssetResource: 0x1740e8900> type=photo size={3264, 2448} fileSize=3185088 uti=public.jpeg filename=IMG_6683.JPG assetLocalIdentifier=BF00A76D-AC8E-4481-BC45-3E18D80C656D/L0/001。これはPHAssets、ローカル デバイス上にない場合に発生します。をtrueに設定isNetworkAccessAllowedPHAssetResourceRequestOptionsて進行状況を確認すると、ダウンロードが0,5で停止し、上記のエラーが発生したことが報告されます。

どうしたのかしら。ドキュメントに説明が見つかりません。

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

ios - SVGKit: SVGKit を使用して iOS デバイスの写真を参照する SVG XML 文字列をレンダリングする方法

だから、私の基本的な質問は次のとおりです。

iOS で SVGKit を使用して、ローカル イメージへの参照を含む SVG をレンダリングする方法はありますか?

血まみれの詳細

私のアプリケーションは、SVG (NSString 内の XML) を生成してレンダリングする必要があります。XML は、デバイス (カメラ ロール内) の画像 URL を参照します。iOS用のSVGKitを使用しています。以下を使用してイメージ PHAssets から URL を取得できます (参照: StackOverflow:nsurl-from-phasset ):

次に、生成された SVG XML 文字列でその画像 URL を使用します (これはシミュレーターで生成されたものです)。

私が試したこと

SVGKSourceString を使用してSVGKImageを作成しようとしましたが、ローカル イメージ URL に対して空のイメージが返されます (リモート URL 参照は正常に機能します) 「空白の画像」とは、サイズはあるが画像の内容がない nil 以外のオブジェクトを意味します。

シミュレーターで、デバイス上のファイルから SVG コンテンツを読み取ると、機能することに気付きました。変だと思ったけど、どうでもいい。ファイルから SVG コンテンツを読み取るときは、URL 参照を別の方法で処理する必要があります。そのため、NSString を NSInputStream に変換し、SVGSourceLocalFile.initWithInputStream: を使用して SVGKSourceLocalFile を作成しましたが、シミュレーターでも機能しました。レンダリングされた SVG で参照されるローカル イメージ。(注:imageWithSourceが爆発するのを防ぐために、filePathに偽のファイル名を設定する必要がありました。)

しかし、残念ながら、これは実際のデバイスでは機能しませんでした。SVGKImage imageSource: 空白の画像が返されます。

デバイスの URL 参照が気に入らなかったのではないかと強く疑っています。PHAsset から一般的な URL を取得する際に問題があることはわかっています。シミュレーターの URL は、Safari シミュレーターで機能します。しかし、実際のデバイスに返される URL (「file:///var/mobile/Media/DCIM/102APPLE/IMG_2405.JPG」のように見える) は、デバイスの Safari アプリでは機能しませんでした。また、PHAsset を ALAssetURL に変換しようとしました ( StackOverflow:how-to-get-an-alasset-url-from-a-phasset を参照)が、これもうまくいきませんでした。これも空白の画像を返します。

バージョンの詳細

  • iOS バージョン: 10.0.2 (実機)、sim 上のさまざまなバージョン (8.4、9.3、10.0)
  • SVGKit バージョン: pod 'SVGKit', :git => ' https://github.com/SVGKit/SVGKit.git ', :branch => '2.x'
0 投票する
2 に答える
1234 参照

ios - iOS Photokit - PHAsset の pixelWidth と pixelHeight が高解像度の画像と一致しない

私の会社では、PHAssets を取得して正しいサイズのメタデータを取得することに大きな問題があります。お客様がライブラリから写真を選択し、それぞれのサイズ (ピクセル単位) を取得し、販売するガジェットに合わせて座標を計算し、高品質の写真をサーバーにアップロードしてガジェットを印刷できるようにする iOS アプリケーションを開発しました。お客様によっては、送信された一部の高品質バージョンの画像のピクセル単位のサイズが、PHAsset オブジェクトによって指定された pixelWidth および pixelHeight と一致しないという問題が発生しています。例を作るために、次の図があります。

  • PHAsset オブジェクトによって 2096x3724 であると報告されています
  • ただし、フルサイズの画像が要求されると、1536x2730 の画像が生成されます

写真は iCloud になく、iOS 10.2 を実行している iPhone 6 SE から送信されています。フルサイズの画像バージョンを取得するコードは次のとおりです。

requestImageDataForAsset メソッドでも試してみましたが、うまくいきませんでした:

アップロードを行う前に、すべての画像の高解像度バージョンから正確なサイズを取得することは、ライブラリから大量のアセットを選択するときに多くのパフォーマンスを低下させるため、私たちのオプションではありません.

私たちは行方不明ですか、それとも何か間違っていますか? フル解像度の画像をメモリにロードせずにアセット サイズをピクセル単位で取得する方法はありますか? 助けてくれてありがとう

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

ios - ビデオをカメラロールに保存してアセット URL を取得する方法は?

iOS アプリからビデオをエクスポートし、アセット ID を取得する必要があります。以前は、 ALAssetsLibraryを使用できました。

カメラロールに画像を保存し、アセットの URL を取得する

しかし、現在は廃止されています。これを達成するための新しい方法は何でしょうか?ありがとう!