問題タブ [nsimagerep]
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.
objective-c - NSImageRep の解像度が間違っていますか?
MacOS 10.7.4 には、144 DPI の画像表現を持つ新しいアイコンが付属しています。悪い点は、これらのアイコンの 1 つを NSImage にロードすると、サイズが 512px の担当者しか得られないことです。つまり、1024px/144dpi icns ファイルを NSImage にロードし、すべての画像担当者にそのサイズを尋ねます... 担当者のサイズが 1024px ではなく、最大のサイズしか取得しません。512px の解像度 (rep の解像度が 144dpi ではなく 72dpi であるかどうかは関係ありません。実際、TextEdit や Automator などの 10.7.4 の新しいアイコンには、144dpi の単一の rep に存在する 1024px を除いて、各サイズの両方の解像度の rep があります。 )。
NSImageRep が実際の解像度を理解していないように見えるのはなぜですか? この問題が 1024px/144dpi でのみ発生し、たとえば 512px/144dpi では発生しないのはなぜですか?
NSImage の TIFFRepresentation を読み取り、それをファイルに書き戻すと、正しい 1024px/144dpi TIFF ファイルが得られますが、同じ NSImage を CGImageSource/CGImageDestination を kUTTypeTIFF として書き込むと、1024px/72dpi ファイルが得られます。
これらすべてが私を非常に混乱させています。
どうもありがとう
objective-c - CGImageDestination dpi を変更する
NSImageRep の dpi を変更する方法は知っていますが、CGImage API にこの変更を反映させる方法がわかりません... CGImage に標準の 72dpi ではないファイルを書き込む方法はありますか? NSImageRep を 144dpi に設定した場合、CGImage API を使用してファイルに書き込むと、常に 72dpi の画像が取得されます...
どうもありがとう
objective-c - CGImage API と ICO ファイル
バグのような現象が発生しています: CGImage API を使用して ICO ファイルを作成すると、カラー プロファイルを持つ最初のレップ (256px) が取得されますが、他のすべてのレップにはカラー プロファイルがありません (実際には、より明るく見えます)。また、各画像担当者 (元の NSImageRep および画像プロパティの辞書を介した CGDestination) でカラー プロファイルを設定しようとしましたが、何も変わりません。これは間違いなくバグだと言えますか?
cocoa - -[NSBitmapImageReppresentationUsingType:properties:] 特定の BMP 構成をエクスポートしますか?
NSBitmapImageRep から BMP データをエクスポートする方法を見つけようとしていますが、BMP の作成方法を指定するために追加できるプロパティがないようです。具体的には、ARGB8 (つまり、アルファ、赤、緑、青がそれぞれ 8 ビット) のものをエクスポートしたかったのです。タイプNSBMPFileTypeを渡すと、出力はどのように構造化されるはずですか?また、この出力方法を変更する方法はありますか? そうでない場合、誰かが私がやろうとしていることを行うより良い方法を推奨できますか?
objective-c - カスタム NSImageRep サブクラスに -draw を実装する方法
倍精度値を保持できる NSImageRep サブクラスの作成に興味があります。標準の NSBitmapImageRep は単精度浮動小数点数を保持できますが、倍精度浮動小数点数ではチョークします。私は NSBitmapImageRep が操作用のデータ バッファーを公開していることを気に入っており、表示用の画像に変換する必要がある別のバッファーを操作するのではなく、その場でデータを操作する機能を保持したいと考えています。
サブクラス化は、最も基本的な部分である画像の描画の処理方法がわからないことを除けば、かなり簡単だと思います。ドキュメントには、実装する必要があるメソッドとして -draw がリストされていますが、これは理にかなっていますが、ビットマップを描画する最良の方法は何ですか?
おそらくピクセルごとに1つずつ、多くの小さな長方形を描画するための1つのためらう提案を見ました: NSImageのカスタム画像表現を実装する方法
より効率的なアプローチはありますか?ビットマップ データを使用したカスタム NSImageRep の実際の例を調べましたが、見つけることができません。ほとんどの例では、ベクター データが使用されています。
また、実装するメソッドが単純に -draw であり、任意の形式の境界付き描画ではないことも興味深いと思います。NSImageRep 内から現在のクリッピング領域が何であるかを判断する方法や、不要な画像の部分を描画しないようにする方法はありますか?
ios - NSImage と UIImage は異なる NSData 表現を提供します
シナリオ: iPhone のカメラ ロールに画像があります。を使用してアクセスしALAssetLibrary
、オブジェクトを取得しALAsset
ます。次のコードのようなものを使用して、そこからオブジェクトを取得しUIImage
ます。NSData
次に、イメージ キャプチャを使用してカメラ ロールからイメージを Mac にコピーします。次にNSImage
、Mac コードで を使用して、コピーした画像を開き、NSData
次のコードを使用して表現を取得しようとします。
問題: 残念ながら、NSData
得られる 2 つの表現は大きく異なります。どちらの場合も同じ表現を取得できるようにしたいNSData
(同じファイルであるため)。次に、NSData
オブジェクトをハッシュし、ハッシュを比較して、2 つが (おそらく) 同じ画像であると結論付けます。理想的には、次の 2 つの機能が必要です。
OS X と iOS で取得した NSData* 表現は、同じソース イメージから取得したものであるため、まったく同じです。
私が試したこと:
I have tried to play around with how I get the UIImage object from the ALAsset
object, I have tried to UIImagePNGRepresentation
(and the corresponding for getting NSData
in OS X). I have also tried to play around with different parameters for getting the representation in OS X but nothing has come through. I have also tried to create a CGIImageRef
on both platforms, convert that to Bitmaps and read them pixel by pixel and even those seem to be off (and yes I do realise that the NSBitmapImageRep
has different co-ordinate system).
png - NSImage をアルファなしで 5 ビットカラーの PNG として保存する
PNG として保存したい NSImage がありますが、アルファ チャネルを削除して 5 ビット カラーを使用します。現在、PNGを作成するためにこれを行っています:
SOに関する同様の質問をたくさん読んだことがありますが、使用するための最良/正しいアプローチについて混乱しています。新しい CGGraphics コンテキストを作成し、そこに描画しますか? これらのパラメーターを使用して新しい imageRep を直接作成できますか? コードスニペットを使用して、どんな助けでも大歓迎です。
乾杯
デイブ
image - NSImage から glTexture への最も効率的な方法は?
(以下を更新...)
10.8+ をターゲットとする OpenGL Cocoa/OSX デスクトップ ap
フレームごとに NSImage オブジェクトを受け取り、それを openGL テクスチャ (IPCamera からのビデオ フレーム) に変換したい状況があります。SO とインターネットから、NSImage を glTexture に変換するために見つけた最も役立つユーティリティ メソッドは、以下のコードです。
これは時折の (IE 読み込み) 状況では問題ありませんが、フレームごとに 1 回実行するとパフォーマンスが大幅に低下し、ひどいものになります。コードのプロファイルを作成し、ボトルネックを 2 つの呼び出しに絞り込みました。これらの呼び出しを合わせると、アプリケーション全体の実行時間のほぼ 3 分の 2 を占めます。
ビットマップの作成
問題はおそらくビットマップを取得する方法にあると考えており、TIFFRepresentation に関するパフォーマンスに関して悪いことを聞いたので、代わりにこれを試しました。これは確かに高速ですが、少しだけであり、奇妙な色シフトも導入しました。 (すべてが赤く見えます):
/li>glTexImage2D 呼び出し (これを改善する方法がわかりません。)
以下の方法をより効率的にするにはどうすればよいですか?
または、私のやり方が間違っているので、他の場所を探すべきだと教えてください。フレームは MJPEG として入ってくるので、NSImage に変換される前に NSData を使用できる可能性があります。ただし、それは jpeg でエンコードされているので、それに対処する必要があります。また、実際には、アプリケーションの別の部分に NSImage オブジェクトが必要です。
プロファイルのスクリーンショット:
アップデート
以下の Brad のコメントに基づいて、単純に NSImage をバイパスすることを検討することにしました。私の特定のケースでは、NSImage に変換される前に NSData オブジェクトとして JPG データにアクセスできたので、これはうまく機能しました。
上記とほぼ同じ方法を使用しますが、ビットマップ表現から直接開始すると、CPU 使用率が 80% から 20% に低下し、速度に満足しています。私は自分のapの解決策を持っています。
元の質問に対する答えがあるかどうか、または避けるべきことのオブジェクトレッスンとしてこれを受け入れるのが最善かどうかを知りたい. 最後に、glTexImage2D 呼び出しの読み込み時間を改善できるかどうかまだ疑問に思っています。現在は妥当な範囲内ですが、メソッドの負荷の 99% を占めるようにプロファイルされています (ただし、おそらくそれで問題ありません)。
===========
objective-c - PDF を NSImageRep (png) に変換する際の色付きアーティファクト
さまざまな PDF ページを png に変換したいと考えています。その後、すべてのピクセルを繰り返し処理して、色付きのピクセルを検索します。主な目標は、PDF のカラー ページを取得することです。ほとんどのページで、うまく機能します。しかし、一部のページでは、アーティファクトを赤 (文字の左側) と青 (文字の右側) に色付けしています。
これは PDF のオリジナルです:
(ソース: brebook.de )
そして、これはpngの変換された文字です:
この醜いアーティファクトを防ぐにはどうすればよいですか。この色付きのピクセルでは、アイデア全体を使用することはできません。
これは、単一ページを png に変換するコードです。
助けてくれてありがとう!!!
objective-c - カスタム NSImageRep を IKImageView に認識させる
私のアプリケーションではNSImageRep
、独自の画像形式を処理するためのカスタムを作成しました。アプリケーションの主要なビューは です。これは、表示と操作のためにIKImageView
カスタム化した画像をロードする予定です。NSImageRep
これらの画像を作成しCGImageRef
て参照を画像ビューに渡すと、正常に動作しますが、これは理想的ではありません。IKImageView
可能であれば、の方法を利用したいと思います。setImageWithURL:
これは、ドキュメントで推奨される方法であると述べられているだけでなく、よりクリーンです。残念ながら、ビューは私のことをまったく知らないようで、NSImageRep
単に画像の読み込みに失敗しています。
画像ビューがカスタム表現を理解できるようにするためにできることはありますか?