問題タブ [libpng]
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.
qt - カスタムQIODevice実装を備えたQImageReader
別のQIODevice(ファイルの場合もあります)からのデータストリームを復号化するカスタムQIODeviceがあります。ファイルの暗号化と復号化に使用されます。一部のファイルは画像です。次に、QImageReaderを使用して暗号化ストリームから画像を直接ロードしますが、まれにQImageReaderがそのストリームからの画像の読み取りに失敗することがあります。暗号化されていないファイルからQImageReaderで適切に読み取ることができるPNG画像が1つあります。しかし、カスタムQIODeviceをQFileに重ねて、QImageReaderに渡すと、失敗して印刷されます。
「libpngエラー:IDAT:CRCエラー」
集中的なデバッグを行い、QImageReaderがQIODeviceで呼び出すすべての読み取りとシークをトレースし、暗号化されていないファイルのQFileと一緒に配置しました。
そして、ファイルから読み取られたすべてのデータは、ストリームからのデータとまったく同じであることが判明しました...
なぜそれはそのlibpngエラーを返すのでしょうか?
opengl - VC6.0でのlibpngエラー
OpenGLプロジェクトでlibpngを使用して、WindowsXPでVC6.0を使用してpngファイルのテクスチャをロードしています。ビルドしても問題なく、実行中にエラーが発生します。エラーは
再起動しようとしましたが、エラーが残ります。そして、exeファイルを別のxpデスクトップに配置しましたが、エラーが残ります。
デバッグ時に、このステートメントが間違っていることがわかりました:(通常はlibpngで使用されます)
エラーメッセージは
私のコードはfedoraのg++で正常に動作しますが、WindowsXPのVC6.0では問題があります。
ソースコードが非常に大きく、何がうまくいかないのかわからないので、ここに貼り付けるコードがわかりません。
誰かがこれについて何か考えを持っていますか?
これについて私を助けていただければ幸いです。どうも!:)
c - 私が20.0を持っているとき、それは> = 17.0.0が必要であると不平を言うhighgui
これは一種の醜いものですが、私は立ち往生しているので、ここに行きます:
opencv (highgui およびその他の部分) を使用し、最終的には ffmpeg (libavfilter) によって読み込まれる動的ライブラリ (以降、「mylib.dylib」) を作成しています。ライブラリは問題なくコンパイルされます。しかし、ffmpeg 内から dlopen() しようとすると、次のエラーが発生します。
ただし、otool -L /usr/local/lib/libpng15.15.dylib を実行すると、次のようになります。
前回チェックしたとき、20.0.0 は 17.0.0 よりも新しいものであり、highgui が必要としているものです。
おそらくアーキテクチャの問題だと思いました(私は Lion を実行している Mac を使用しているため、i386/x86_64 で多くの問題に遭遇しました)が、すべてのライブラリで「file」を実行すると、すべて(highgui、libpng、 mylib) は、Mach-O 64 ビットの動的にリンクされた共有ライブラリ x86_64 です。
私のシステムのどこかに別のバージョンの libpng が隠れているのではないかと思いましたが、dlopen エラーは具体的に /usr/local/lib/libpng15.15.dylib を指しています。
ここで明らかに欠けているものがあります。確かに、私はこれらの動的ライブラリがどのようにリンクするかについて専門家ではありません。そのため、関連する情報を含めるのを忘れていたら、すみません。
更新 言及するのを忘れました-XCode(dlopenエラーなし)を介してffmpegを実行すると、libが正常に動作するため、XCodeが設定している環境変数と関係があると思われます。
ありがとう!
解決策 1. 私は MAMP を使用していましたが、php スクリプトを介して ffmpeg を呼び出していたので、(驚きの驚き) libpng 16.0.0 を含む独自の dylib のセットを使用していました。
image - permissive ライセンスのオープンソース ライブラリを使用して raw 画像を変換する
生の rgb32 形式の画像を、寛大な (BSD や Apache などの) ライセンスを持つライブラリ (Java、C、C++ で記述) を使用して PNG に変換する必要があります。
この呼び出しでFFmpegを使用して画像を変換できます:
ffmpeg.exe -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 20x40 -i infile -f image2 -vcodec png out.png
ここで、20x40 は幅×高さです。
しかし、悲しいことに、FFmpeg はそのライセンスのために避ける必要があります。
libpng がその仕事をすることができると人々が推測しているのを見てきましたが、私が libpng サイトで見たドキュメントを考えると、私は懐疑的です。おそらくあなたは例を挙げます。
rawvideo と rgb32 の値が FFmpeg にとって何を意味するのかわからないので、この質問をしました。
EDIT 1:幅x高さを表示するようにffmpeg呼び出しを編集しました。
android - OpenGL テクスチャ + libpng が画像の歪みを引き起こしている
NDK と OpenGL で PNG 画像をレンダリングしようとすると、PNG 画像が歪んだ画像として読み込まれる理由がわかりません。PNG はアセット フォルダーにあり、アルファ レイヤーがあります。アセットフォルダーからそれらを取得する方法は次のとおりです。
OpenGL でのレンダリング方法は次のとおりです。
SCR_CheckErrors()
いくつかのエラー チェックを行います (ただし、エラーは出力されません)。
image-processing - libpngでエンコードするときに8ビットpngのピクセルを透明に設定するにはどうすればよいですか?
libpngを使用してrgbデータを8ビットpng画像(パレット)にエンコードするときに、ピクセルを透明としてマークしようとしています。この場合、別のアルファチャネルを作成すると、アルファチャネルは無視されます。8ビットカラーパレットを使用するときにピクセルを不透明または透明に設定する方法はありますか?
ありがとう
c++ - Xcode で libpng を使用すると互換性バージョンの問題が発生するのはなぜですか?
OS X 10.7.1 で Xcode 4.2 で libpng を使用すると問題が発生します。
プログラムの起動に失敗し、次のエラーが表示されます:
と:
リンクされたライブラリに追加/usr/X11/libpng.dylib
するだけなので、この「バージョン 20」の要件はどこから来るのでしょうか? Xcode が利用可能なバージョンを必要としないのはなぜですか? バージョン 17 を使用してもよいことをプログラムに伝えるにはどうすればよいですか?
png - PNGをすばやく書く
概要
圧縮を気にせずに、できるだけ早く .png ファイルを書きたいと思っています。つまり、ファイル サイズはあまり気にしませんが、できるだけ早く書き込みが行われるように気を付けています。
動機
クライアント側で OpenLayers を使用し、バックエンドで python/C++ を使用して Web ベースのマップ アプリケーションを作成しています。アプリケーションは、ユーザーがマップ上を移動するときに動的コンテンツをすばやく描画できる必要があります。タイルベース (256x256 タイル) と単一画像ベース (「単一タイル」) の両方のバージョンが動作していますが、どちらの場合も、バックエンド レンダリングの最も遅い部分は、実際には画像を png ファイルとして保存することです ( -ディスクまたはメモリ内)。たとえば、特定のビューの「raw」、「tga」、または「tiff」バージョンを約 200 ミリ秒で生成できる場合がありますが、.png バージョンを生成するのに 1.2 秒ほどかかります。保存にはほぼ 1 秒かかりますが、他の形式を実際に保存する時間は 100 ミリ秒以下です (「生の」ファイルは .png ファイルの 5 倍のサイズですが)。また、このファイル保存時間は、結果のイメージをサーバーからクライアントに転送する時間よりも大幅に長くなります。(私のアプリの重要な特性の 1 つは、一般に「バックエンド」がブラウザーと同じマシンで実行されるため、大きなファイルであっても転送時間は無視できることです。)
.png の書き込みを高速化できると思いました (C++ から libpng を使用する場合)。
png_write_...
関数を呼び出す前に。ただし、その呼び出しは確かに libpng によるファイルの圧縮を停止しているように見えますが (結果のファイルは .raw ファイルとほぼ同じサイズになります)、.png の保存が著しく高速になるわけではありません。
助けてください
これらの画像には .png を使用する必要があります。これは、これらの画像をベース マップの上に透明なオーバーレイにする必要があり、GIF で提供される 256 色以上が必要だからです。OpenLayers は単純に html img タグを使用しているため、有効な img 形式しか使用できないと理解しています。
実際の圧縮を行わずに.pngファイルをすばやく書き込む方法があると思います(.pngは「常に圧縮」されていることは理解していますが、これには「ヌル圧縮」が含まれる可能性があると思いました)。単純な固定ヘッダーの後に圧縮されていないデータが続き、その後に固定フッターが続くように書くことができるはずです。または、同じアイデアかもしれませんが、行ごとの方法です。ポイントは、メモリ内のこの 2.5 MB の生データを C++ で非常に迅速にループ処理し、さまざまなファイル形式に非常に迅速にダンプできることです。 、非圧縮の .png 形式にもすばやく変換できます。
そうですか?それを行うコードの例がどこにあるか知っていますか?
qt - Qt の組み込み libpng ライブラリを直接使用することは可能ですか?
QImage を PNG ファイルに保存していますが、QPNGHandler は十分にカスタマイズできないため (png_set_filter が必要です)、独自の PNG ハンドラーを作成する必要があります。Qt が -system-libpng なしで構成されている場合、Qt のバンドル バージョンに直接アクセスできますか?
現在、Qt を静的にコンパイルしていますが、変更される可能性があります。
php - 生成の遅い pdf (yii フレームワーク)
同様の質問を確認しましたが、問題の解決策が見つかりませんでした
以下を使用したWebプロジェクトの環境:
- リスト項目
- yii フレームワーク (Zend エンジン v2.3.0)
- PHP 5.3.8
- サーバー OS Fedora15
- ジャバ 1.6.0_22
- Apache Batik 1.7 Java ライブラリ
- libpng 2:1.2
私たちのプロジェクトは動的にPDFドキュメントを生成します(Zend Pdfクラスを使用)。
PDF 生成は、約2 ページで完了するまでに約10 秒かかります。これには、2 つの png 画像 (svg 形式で POST データを送信するチャートと、Java で彼 (svg) を png 画像に変換したチャート) が含まれます。highcharts js-lib で生成された Web チャートでは、 png に)。
生成プロセスを高速化する必要があります。
コードの一部:
javaでsvgをpngに変換する:
明日、いくつかの jpg-lib をサーバーにインストールして、プロジェクトで png を jpg に置き換えてみます。
追加情報が必要な場合はお知らせください。
誰かが私を助けることができますか?これを行う方法が本当にわかりません。知っていることはすべて試しました。
助けや提案をありがとうございました!!