2009-08-23 22 views
7

TImageコンポーネントを使用して、いくつかのJPEGファイルをDelphiで開こうとしました。私もJpegユニットを追加しました。私はほとんどのjpgファイルを開くことができ、問題はありません。DelphiでJPGファイルを表示する際の問題

しかし、いくつかのJPGを開こうとすると、プログラムから例外がスローされます。

デザインモードでイメージを読み込もうとしましたが、問題があります。デザインモードでの例外は次のとおりです。

モジュール 'vcljpeg70.bpl'のアドレス402672A1のアクセス違反。アドレスの書き込み08E84000

私はそのJPGを開くことができません?彼らは腐敗していません。私はsavantools EXIFビューアのようないくつかのツールでそれらをチェックしました。ここ

は、その画像の1のURLです: http://xs842.xs.to/xs842/09340/backpic435.jpg

本当にありがとうございました

PS: 私のDelphiのバージョンは、私は同じエラーを取得します7. Borland Delphiの7

+0

イサーク:CMYKとデルファイについての回答を参照してください。) – RRUZ

+0

アイザック:デルファイのバージョン(このような質問の重要な部分)を指定していませんでしたが、RRUZによるリンクはDelphi 5 - BDS2006の問題を解決します。 Delphiチームは、非標準的であっても流行っているjpgのオープンをサポートする必要があります。 – Argalatyr

+0

イメージがCMYKとして保存されたことを検出するコードがありますか? –

答えて

12

あなたがかもしれ理由この問題が発生するのは、ファイルの種類によるものです。 Delphiでは、デフォルトのRGBエンコーディングではなく、CMYKを使用してエンコードされたJPEG画像を表示する問題があります。 CMYKは、一般的にプリントデザインに使用されるフォーマットで、画像をRGB形式でエンコードして、この問題を回避します。

Delphi jpeg.dcu

さようならためのパッチ。

+0

商業印刷ショップは、RGBフォーマットの優位性とオンラインディスプレイからの価値の高まりにより、RGB(またはsRGBなどの味)に移行しています。そのパッチへのリンクについては – Argalatyr

+1

+1です。 – robsoft

+0

それは本当に私の問題を解決しました!しかし、画像の色は、Microsoft Picture and Fax Viewerが示すものとは少し異なります。私はこれがカラーマネージメントのためだと思う。 – Isaac

1

です。これはDelphiのJPEGライブラリのバグです。それをQCに報告する必要があります。

2

ネイティブのものに問題がある場合、Delphiの代替JPEGサポートについては、フリー画像ライブラリをご覧ください。 Free Imageは、Delphi/BCB /などのJPEG/PNG/...で作業できるオープンソースのlibです。非常に素晴らしいライブラリIMHO。

http://freeimage.sourceforge.net/

+0

ありがとうが、IMHOは本当に大きな図書館です。単に画像を表示するためのより簡単なライブラリ/コンポーネント(TImageのようなもの)がありますか? – Isaac

6

興味深いです。どちらもInternet ExplorerでもGoogle ChromeにリンクしたJPEG画像が表示されます。私は得ない404見つからないエラー、私は単に、画像が正しく/開くことができなかったことを示す画像のプレースホルダーを取得します。

firefoxイメージを表示します。

関連するJPGファイルについて、怪しいもの、または少なくともわずかに珍しいものがないことは確かですか?

UPDATE:質問ににリンクされたファイルはペイントショッププロ(古いバージョン6.0のインストール)で開きます - 私は、単に標準エンコーディングJPEG、IEクローム両方として再保存すると新しく保存された画像を私が期待している通りに表示する。間違いなくいくつかの「主要なプレーヤー」だけではなく、デルファイを含むいくつかのJPEGのアプリはすべて扱うことはできませんが、という本来のJPEGのエンコードについて何かビット「奇数ボール」、があるように思われます。 :)

+0

Safariは画像もきれいに表示します。興味深い問題。私はIEで特定のjpegを表示していない前にこれを1〜2回見つけたと思うし、常に(誤って)jpegファイル自体に問題があると仮定していた。検討のおかげで – robsoft

+0

! 私はこの質問にいくつかの "専門家"フォーラムがありますが、誰も私に答えませんでした。スタックオーバーフローは本当に素晴らしいです! あなたの答えについて: あなたは正しいです。私はまた、何かが間違っていると思うjpegです!しかし、私が見せなければならないこのような多くのjpegがあります。だから私はそれらを修正したり修正することはできません。私は彼らをそのまま見せなければなりません。 「Windows Picture and Fax Viewer」で表示できるので、なぜできないのですか? – Isaac

2

私は、バイナリエディタでファイルを見て、3つのJFIFヘッダを見つけました。各部分を抽出した後、2つのサムネイルと画像が見つかりました。 embedded thumbnails seem to be part of the EXIF2 standardのため特別なものはありません。

サムネイル自身がDelphiで罰金をロードし、読みやすい何かにファイルを変換することは、私が試したソフトウェアのほぼすべての部分で行うことができます。

(単にテキストボックスにあなたの画像のURLを貼り付け)とにかく、このページはあなたに絵についての非常に詳細な情報を提供します、そしてどのようなヘッダ内の、次のとおりです。

http://www.monster-submit.com/resources/jpeganalyzer/

+0

ありがとうございました。私はあなたが言ったEXIF2の標準について読んで、とても面白かったです。 しかし、私は本当に詳細に落ちることを望んでいません。私は、DelphiでそのJPEGを表示する方法を探したいだけです。多分単純なコンポーネントが私を助けてくれるでしょう。 – Isaac

0

SimDesignのNativeJpgは、そのファイルを開くことができます。 Delphiで完全に書かれたJPEGライブラリです。著者は、新しい拡張機能や色空間をサポートしています。 TImageのサポートのTGraphicの子孫に加えて、私はそれらを使用していませんが、JPEGを操作するための多くの低レベルインタフェースを公開しています。

+0

これは別の良い解決策かもしれません。しかし、それは無料のライブラリではありません。私はjpegを正しく表示するために€49,95を支払う必要がありますが、jpegはMicrosoft Picture and Fax Viewerですでに表示されています! ありがとうございます。少なくとも、私はDelphi 7が実際にいくつかのJPEGを表示する際に問題があることを理解しています! ;) – Isaac

+0

ダウンロードページは存在しません。 –

関連する問題