問題タブ [svgkit]
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.
ios - UIView 内のグラフィックスの Z レベル
私は、ユーザーがロックされた領域を塗りつぶし、指の動きで単純に線を描くことができる描画アプリに取り組んでいます。
ロックされた領域は SVG (パス) として提供されるため、SVGKit ライブラリを使用して画面にレンダリングしています (ビュー内の CAShapeLayers として)。次に、基本的に適切なレイヤーでfillColorを使用して、タッチで塗りつぶします。
ただし、線の描画では Core Graphics が機能し (CGContextStrokePath)、線は常に CALayers 階層内に含まれるすべての下に描画されます。したがって、基本的には塗りつぶされた領域の下にあります。
私が到達しようとしているのは、最後に適用された描画が常に一番上にあるシステムです。そのため、塗りつぶしを適用すると領域内の線が上書きされ、次に線を描画すると、塗りつぶされたゾーンの上に表示されます。
CGLayer の z-index は CALayer の z-index よりも小さいようです。私の目標には別のアプローチが必要です...
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'
swift - SVG 画像を迅速に保存および取得する方法。
私はSVG画像の使用法が初めてです。iOSでsvg画像を使用しました。SVGKLayeredImageView を使用して CALayer を取得します。そして、SVG 画像の別の部分の色を変更します。今、私は、変更されたレイヤーで画像をローカルに保存する方法に固執しました。これは私のコードです。それを見直して、私に良い意見をください。前もって感謝します。
この変更された svg 画像を保存したいのですが、これに対する回答をお願いします。応答を待っています。
ios - Swift 4 で「SVGKit」を使用して「svg」データを UIImage に変換できないのはなぜですか?
svg
を使用して画像データをUIImage
インスタンスに変換しようとSVGKit
していますが、これを実行しようとするとクラッシュし、次のようなエラー メッセージが表示されます。
キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'パーセント値を別の型に変換するように求められました (5)'
svg
これがtoUIImage
変換のコードです。
この行でクラッシュする
AlamofireImage
サーバーから画像データをダウンロードするためにライブラリを使用しています。
私のsvg
データが応答にあることを確認しました。
参考までに、私のイメージはアバター文字とグラデーション背景の組み合わせです。
参考までに下の画像をご覧ください。
私の svg 画像サンプル URL: リンク
何か助けはありますか?
前もって感謝します。
ios - +[SVGKImage imageWithSource:] で *** アサーション エラーとしてアプリがクラッシュする
私は迅速なプロジェクトで SVGKit を使用しています。( https://github.com/SVGKit/SVGKit )に従って、SVGKit フレームワークとサードパーティのリソース フォルダーをプロジェクトに適切にインポートしました。
プロジェクト内に .svg 画像のセットを含むフォルダーを作成し、次のコードを使用して画像を testIcon(ImageView) にロードしています。
しかし、次のエラーが表示されます。
** +[SVGKImage imageWithSource:]、/Users/fss/Downloads/SVGKit-2.x/Source/SVGKImage.m:229 でのアサーションの失敗
*** キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: '無効なパラメーターが満たされていません: newSource != nil'
.svg
SVGKImage 画像クラスへの画像 (私のプロジェクト内にある) のパスを指定する方法、またはこの問題を解決する方法を教えてください。