私は、DelphiでJpgイメージをロードしようとしているところに問題があります。コードのDelphiが読み込んでいないJpgイメージ - それはビットマップだと思いますか?
私の呼び出し元の行は次のとおりです。
AImage.Picture.LoadFromFile(AImageFilePathStr);
私はVcl.Graphics TFileFormatsList.FindExt方法にかかわらず、それを追ってきました。
私は腕時計を追加しましたが(最適化のために '私'のような変数にはアクセスできませんでしたが)、FindExtはI = 8のときに一致します。 4番目の項目が一致し、「I」が11から0にカウントダウンします。
時計がTFileFormatType(Items[8])
の場合はGraphicClass is TBitmap and Extension is 'jpg'
になります。したがって、拡張は一致しますが、GraphicClassはTBitmapです。
「ビットマップイメージが無効です」という例外が後でスローされます。
なぜこのJpgイメージはビットマップだと思うようですか?
ありがとうございました。
'.jpg'が' TBitmap'にマップする唯一の方法は、VCL以外のユーザコードが 'TPicture.RegisterFileFormat()'を使って間違って登録した場合です。標準の 'Vcl.Imaging.Jpeg'ユニットを' uses'節に追加してJPGを正しく登録してください。 –
この質問にはそのまま回答することはできません。そうでなければ不可解な行動を説明するには、[mcve]が必要です。まあ、フォーマットが何かによって誤って登録されていると推測するのは簡単だと思いますが、答えられない部分は何かがあることです。 –
謝罪します。将来私はそうするでしょう。 – DelphiGuy