2016-11-15 8 views
0

httpヘッダーを確認しました。コンテンツの種類はimage/pngの両方です。画像がPNGまたはAPNGの場合は、PNGの場合と同じように、異なる表示にする必要があります。それがAPNGの場合は、最初のフレームを表示し、ユーザーが画像をタップすると画像全体のダウンロードが開始されます。APNGイメージとPNGイメージをダウンロードする前にそれを区別する方法はありますか?

答えて

2

APNGのMIMEタイプは、image/apng:https://wiki.mozilla.org/APNG_Specificationです。
HTTPヘッダーのコンテンツタイプが間違っている場合、ダウンロードを開始せずにAPNGを識別する方法はありません。
しかし、あなたは唯一の最初のバイトをダウンロードしようとすることができます/仕様に従って、タイプをチェックするキロバイト:

は 『ACTL』チャンクが任意の 『IDAT』チャンク前にストリームに現れなければならないAPNGとして認識されるためには」
+2

丁寧な回答ですが、IDATチャンクの位置を特定するには、「最初のバイト」よりかなり多くのものが必要です。たとえば、gAMAとiCCPのチャンクは数キロバイトにわたっています。また、イメージがロードされている間、チャンクの実際の解析*が必要になります。 – usr2564301

+0

apngの登録済みIANA MIMEタイプはimage/vnd.mozilla.apngです(http://www.iana.org/assignments/media-types/image/vnd.mozilla.apngを参照)。 APNG仕様はimage/apngを主張していますが、これは決して登録されていません。 –

+0

@Glenn Randers-Pehrsonは真実ですが、Mozzillaの公式仕様では「image/apng」を使用することをお勧めします。https://wiki.mozilla.org/APNG_Specification#MIME_type ** image/apng MIMEタイプを使用してAPNGを識別できます。** in MIME_typeセクション。 ここで正しいMIMEタイプを使用するかどうかについての議論があります:https://bugzilla.mozilla.org/show_bug.cgi?id=1160200#c37 –

-1

それを検出したら、何を?ブラウザがファイル全体をダウンロードするのを止めることができると仮定しているようです。私はそれが可能だとは思わない。

+0

これは答えではありません。また、画像はブラウザからダウンロードされると言う人は誰ですか?質問はiOSに関連しています。 –

関連する問題