問題タブ [skia]
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.
android - BitmapFactory.decodeFile で JPEG 画像を読み込めません。null を返します
Imagemagick によって PDF ファイルから生成された多くの画像を表示するアプリを作成しています。一部の画像は、BitmapFactory で読み込めません。ビットマップの代わりに null を返すだけです。
ログには次のように記載されています。
問題のある画像の一部は非常に小さいため、メモリの問題ではありません。他のマシンで表示できるため、画像は破損していません。さらに、BitmapFactory を使用すると、幅と高さをデコードできます
オプションで。
画像の 1 つを外部の画像ビューアー ( QuickPic ) で読み込もうとしましたが、うまくいきませんでした。また、「読み込みに失敗しました」も返します。これは、画像が破損しているか、何らかの理由で少なくともサポートされていないと SKIA が判断したことを示します。
動作しない画像の 1 つをここで見つけることができます
ロードに使用する完全なコードはこちら
何が間違っているか、またはどのように回避できるかについてのアイデアは大歓迎です。
android-ndk - Samsung Galaxy S3 でのネイティブ ウィンドウ レンダリングの問題
私は Skia (ビルド済み) を使用して、Java サーフェスから取得した Android ネイティブ ウィンドウに描画しています。このコードは、Samsung Galaxy S3 (android 4.0.4 を搭載) を除いて、テストできるすべてのデバイスでうまく機能します。最初の画像は私が見るべきもので、2 番目の画像は Galaxy S3 に表示されるものです。
長方形を描画する jni 関数は次のとおりです。
次のデバイスでテストしましたが、問題はありませんでした。
- ソニー X8 (android 2.3.7 カスタマイズ rom)
- サムスン ネクサス S (アンドロイド 4.0.4)
- サムスン ギャラクシー タブ 10.1 (アンドロイド 3.2)
- サムスンギャラクシー S2 (アンドロイド 2.3.5)
- エミュレーター (Android 4.0.3、Galaxy S3 と同じ画面サイズと dpi)
ANativeWindow_setBuffersGeometry(window,0,0,0) を呼び出してみましたが、うまくいきませんでした (とにかく、ウィンドウ ロック後のバッファーのサイズとフォーマットは問題ないようです)。
これまでのところ、Galaxy S3 だけが問題を抱えています。この時点で、どうすればよいかわかりません。問題が ndk ネイティブ ウィンドウ API にあるのか、skia にあるのか、または関連しているのかさえわかりません。 TouchWizを使用したGalaxy S3...どんなアイデアでも大歓迎です!
android - ネイティブCのAndroid icsで複雑なテキストを描画する
NB: 私のシナリオ全体は、android バージョンの ICS のみを対象としています。
私の目標は、複雑なスクリプト/インド語スクリプトを含むテキストをレンダリングすることです。ICS では、この機能が WebView (およびブラウザ) に追加されました。Indic テキストが Browser または WebView でレンダリングされる場合、正しくレンダリングされます。しかし、他のウィジェット (TextView、EditText) ではレンダリングが壊れています。
私の目標は、Webcore で適切にインド語テキストを描画するためのコードを再利用し、そのコードを使用してカスタム ウィジェットでインド語テキストを描画することです。
また、ブラウザーで HTML5 キャンバスを使用してテストしたところ、インド語テキストを適切にレンダリングできます。Android の android.graphics.Canvas をテストしましたが、インド語テキストを適切にレンダリングできませんでした。
libskiaにはドキュメントが深刻に不足しているため、これを使用してテキストをレンダリングする方法がわかりません。
libwebcore.so の objdump を確認したところ、lib "skia" "libicu" に依存していることがわかりました。したがって、これらのライブラリを使用してインド語のテキストを描画できると想定しています。
skia と icu を使用してインド語のテキストを描画する方法を提案できますか? または libwebcore の特定のコード セグメントを指定できる人はいますか?
ios - iOS用のskiaをビルドする方法
私はiosでskiaを構築しようとしています.そして私はそれをダウンロードしてMac osでSampleAppを実行します.だから私はiosでそれを使いたいです.しかし、xcodeprojを開くと、プロジェクトに非常に多くのファイルが存在します!私はそれを行い、ios用のskiaを構築する方法は?? アドバンスありがとうございます!!
android - NDKによってAndroidに異なるバージョンのシステム共有ライブラリをロードしますか?
いくつかのネイティブライブラリを使用してAndroidアプリケーションを開発しようとしていますが、システムはライブラリを共有しandroid 4.0
、android 4.1.2
は異なります。互換性を確保するために、プラットフォーム4.0からlibskia.soファイルを取得し、プロジェクトにインポートします。サードパーティの共有ライブラリを使用するのと同じように、この共有ライブラリをロードしたいと思います。残念ながら、で実行している間android 4.1.2
、私のアプリケーションはまだシステムskiaライブラリを呼び出しているようです。私はこれについて知りません、そして以下は私のAndroid.mk
ファイルです
およびビルド済みのmakefile
何か案は?または、互換性を確保するための他の方法はありますか?
ios - iOSシミュレーターでskiaを正常に構築していますが、iPhoneで実行できません
みんな。iOSシミュレーターでスキアを実行しましたが、iPhoneで実行できません。ここで停止しました。
getcpuidメソッドでは、「asmの出力制約'a'が無効です」と表示されます。どうしたの??誰でも?
android - SKIAがカスタムFilterInputStreamを使用しないのはなぜですか?
拡張されたFilterInputStreamからビットマップをデコードしようとしています。SKIAにデコード可能な画像を提供するには、画像データに対してオンザフライのバイト操作を実行する必要がありますが、SKIAはカスタムInputStreamを無視し、独自の入力ストリームの1つを初期化するようです...
テストアプリケーションを実行するときに、2 MBの大きなJPEGを読み込もうとすると、ObfuscatedInputStream.read([])
から1回だけ呼び出されます。BitmapFactory.decodeStream()
私から取得した最初の16kbのデータからファイルの種類が決定されると、ファイルはObfuscatedInputStream
それ自体のネイティブストリームを初期化し、そこから読み取り、入力ストリームの動作方法に加えたすべての変更を効果的にレンダリングします...
これが私の拡張FilterInputStreamクラスのバッファリングされた読み取り関数です。関数の上部にあるLog.dは1回だけ実行されます。
誰かがこの問題に遭遇したことがありますか?私の望ましい振る舞いを得る唯一の方法は、SKIAライブラリの一部を書き直すことだと思われます...ネイティブ実装が独自のストリームを初期化する場合、InputStreamパラメータのポイントが何であるかを本当に知りたいです...
skia - ubuntu の Skia ライブラリ テストで UI 表示が得られない
Ubuntu 12.04 64 ビット マシンで skia r1236 をコンパイルするためのskia サイトの手順に従いました。テストを実行すると、グラフィカルな結果を表示するウィンドウが表示されません。コンソールの出力は次のとおりです。
[1/33] PDFPrimitives................... [33/33] BitmapCopy... 33 回のテストを終了し、失敗は 0 でした。
SkImageEncoder::EncodeFile を使用してビットマップをファイルに配置すると、ファイルにグラフィカルな出力が得られます。これにより、ライブラリは正常に動作しているが、Linux ウィンドウ システムを呼び出すことができないことが確認されます。
別の問題は、テキストの実行中に次のエラーが発生することです
SkFontHost::OpenStream が 1 を開くのに失敗しました --- グリフ 0 のコンテキストがありません
Skia の Web サイトで説明されているように、すべての freetype ライブラリをインストールしましたが、SK_FONT_FILE_PREFIX でどのパスを使用してもエラーが発生します。
私の「/usr/share/fonts/」フォルダには
- cmap
- トゥルータイプ
- タイプ1
- X11
ファイル SkOSWIndow_Unix.cpp があることに気付きましたが、誰もテストコードからそれを呼び出していないようです.だから私の質問は
1) 出力をウィンドウに表示するにはどうすればよいですか?
2) SK_FONT_FILE_PREFIX の値は?
PS : Windows ポートは正常に動作しました