NSDataまたはUIImageからの画像タイプの検索
2023-11-04 02:21:17
質問
サードパーティから提供された URL から画像を読み込んでいます。URL にはファイル拡張子 (またはファイル名) がありません (不明瞭な URL であるため)。ここから (NSData の形式で) データを取得し、UIImage にロードしてうまく表示することができます。
このデータをファイルに永続化したいのです。しかし、データの形式 (PNG、JPG、BMP) がわかりません。私はそれが JPG であると仮定しますが (ウェブからの画像であるため)、確実に見つけるためのプログラム的な方法はあるでしょうか? 私はStackOverflowとドキュメントを見回しましたが、何も見つけることができませんでした。
TIA
編集:ファイル拡張子は本当に必要なのでしょうか?私はそれを外部ストレージ (Amazon S3) に保存していますが、iOS またはブラウザ (どちらも拡張子なしでデータを解釈して問題ないようです) のコンテキストで常に使用されることを考えると、おそらくこれは問題ではありません。
どのように解決するのですか?
画像ファイルのNSDataがあれば、1バイト目を見ればコンテンツタイプを推測することができます。
+ (NSString *)contentTypeForImageData:(NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @"image/jpeg";
case 0x89:
return @"image/png";
case 0x47:
return @"image/gif";
case 0x49:
case 0x4D:
return @"image/tiff";
}
return nil;
}
関連
-
[解決済み] Xcodeエラー "Could not find Developer Disk Image" が発生する。
-
[解決済み] UTF-8でエンコードされたNSDataをNSStringに変換します。
-
[解決済み] エラー : サービスは無効です
-
[解決済み] 静的ライブラリのObjective-Cカテゴリ
-
[解決済み] iPhoneのTableViewのCellの右側に小さな矢印を追加する
-
[解決済み] UITableViewのセクション間のスペースを小さくする
-
[解決済み] リンカーフラグ -ObjC は何をするのですか?
-
[解決済み] CALayer setNeedsDisplayInRect:] の暗黙のアニメーションを無効にする。
-
[解決済み] UIWebViewの背景がクリアカラーに設定されているが、透明になっていない
-
[解決済み] オプションのメソッドを持つプロトコルを作成するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UIScrollViewでスクロールの方向を見つける?
-
[解決済み] UITableViewCellのサブビューがセルを選択すると消えてしまう
-
[解決済み] UIButton: 選択されたハイライト状態の画像を設定する
-
[解決済み] iPhoneでMonoTouchは禁止になったのか?[クローズド]
-
[解決済み] UITableViewHeaderFooterView。背景色を変更できない
-
[解決済み] UIImageのアスペクト比と幅を維持したリサイズ
-
[解決済み] iPhoneのSafariで<body>に適用したoverflow:hiddenは機能するのか?
-
[解決済み] ナビゲーションコントローラスタック、サブビュー、モーダルコントローラを使用せずに、ビューコントローラの変化をアニメーション化する?
-
[解決済み] iPhoneシミュレーター - 低速接続をシミュレートする?
-
[解決済み] iPhone 5 CSSメディアクエリ