いくつかの画像は、画像についての属性情報および写真情報を含む交換可能画像ファイルフォーマット (EXIF) データを含み得る。 画像のEXIFデータは、圧縮率、向き、水平解像度、垂直解像度などの画像情報を含む。 画像のEXIFデータを取得する場合は、画像のURLにinfoパラメーターを追加します。
パラメータ説明
オペレーション名: info
画像情報はJSON形式で返されます。
制限事項
JPG、PNG、BMP、GIF、WebP、TIFF、およびHEICイメージのみがサポートされています。
例
オブジェクトURL、OSS SDK、またはAPI操作を使用して、イメージの処理に使用されるIMGパラメーターを設定できます。 この例では、オブジェクトURLが使用されます。 オブジェクトURLを使用して、パブリック読み取りイメージに対してのみIMGパラメーターを設定できます。 プライベートイメージのIMGパラメーターを設定する場合は、OSS SDKまたはAPI操作を使用します。 詳細については、「IMG実装モード」をご参照ください。
- EXIFデータを含まないイメージの照会
https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/info
EXIFデータを含まない画像のURLにinfoパラメーターを追加すると、画像のサイズ、形式、高さ、幅など、画像に関する基本情報のみが返されます。
{ "FileSize": {"value": "21839"}, "Format": {"value": "jpg"}, "ImageHeight": {"value": "267"}, "ImageWidth": {"value": "400"} }
- EXIFデータを含むイメージの照会
https://image-demo.oss-cn-hangzhou.aliyuncs.com/f.jpg?x-oss-process=image/info
EXIFデータを含むイメージのURLにinfoパラメーターを追加すると、イメージに関する基本情報とイメージのEXIFデータが返されます。 EXIFデータの詳細については、「Exifバージョン2.31」をご参照ください。
{ "Compression": {"value": "6"}, "DateTime": {"value": "2015:02:11 15:38:27"}, "ExifTag": {"value": "2212"}, "FileSize": {"value": "23471"}, "Format": {"value": "jpg"}, "GPSLatitude": {"value": "0deg "}, "GPSLatitudeRef": {"value": "North"}, "GPSLongitude": {"value": "0deg "}, "GPSLongitudeRef": {"value": "East"}, "GPSMapDatum": {"value": "WGS-84"}, "GPSTag": {"value": "4292"}, "GPSVersionID": {"value": "2 2 0 0"}, "ImageHeight": {"value": "333"}, "ImageWidth": {"value": "424"}, "JPEGInterchangeFormat": {"value": "4518"}, "JPEGInterchangeFormatLength": {"value": "3232"}, "Orientation": {"value": "7"}, "ResolutionUnit": {"value": "2"}, "Software": {"value": "Microsoft Windows Photo Viewer 6.1.7600.16385"}, "XResolution": {"value": "96/1"}, "YResolution": {"value": "96/1"}}
よくある質問
プライベート画像の画像情報を取得するにはどうすればよいですか?
画像情報を取得するには、OSS SDKを使用して画像情報の取得に使用できる操作を署名付きURLに追加し、そのURLを使用して画像にアクセスします。
- 署名付きURLを生成します。
次のコードは、OSS SDK for Javaを使用して署名付きURLを生成する方法の例を示しています。
com.aliyun.oss.*; com.aliyun.oss.mo del.GeneratePresignedUrlRequestをインポートします。impor t java.net.URL; java.util.Dateをインポートします。public classデモ { public static void main(String[] args) Throwable { // この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 String endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 これらの資格情報を使用してOSSで操作を実行することは、リスクの高い操作です。 RAMユーザーを使用してAPI操作を呼び出したり、ルーチンのO&Mを実行することを推奨します。RAMユーザーを作成するには、RAMコンソールにログインします。 文字列accessKeyId = "yourAccessKeyId"; 文字列accessKeySecret = "yourAccessKeySecret"; // バケットの名前を指定します。 例: examplebucket. String bucketName = "examplebucket"; // オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 文字列objectName = "exampleobject.jpg"; // Create an OSSClient instance. OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { // イメージ情報を取得します。 文字列スタイル="image/info"; // 署名付きURLの有効期間を10分に設定します。 Date expiration = new Date(new Date().getTime() + 1000 * 60 * 10 ); GeneratePresignedUrlRequest req = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET); req.setExpiration(expiration); req.setProcess(style); URL signedUrl = ossClient.generatePresignedUrl(req); System.out.println(signedUrl); } catch (Exception e) { System.out.println("Caught an OSSException, which means your request made it to OSS, " + "しかし、何らかの理由でエラー応答で拒否されました。"); System.out.println("エラーメッセージ:" + oe.getErrorMessage()); System.out.println("エラーコード:" + oe.getErrorCode()); System.out.println("リクエストID:" + oe.getRequestId()); System.out.println("ホストID:" + oe.getHostId()); } catch (ClientException e) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + 「ネットワークにアクセスできないなど」; System.out.println("エラーメッセージ:" + ce.getMessage()); } 最後に{ if (ossClient != null) { ossClient.shutdown(); } } } }
- 署名付きURLを使用して、ブラウザを使用して画像にアクセスし、画像情報を取得します。