edit-icon download-icon

画像処理

最終更新日: Nov 07, 2017

Alibaba Cloud OSS は、非常に大きな処理能力、高度なセキュリティ、低いコスト、高い信頼性を誇る、画像処理サービスを提供します。

ソース画像を OSS にアップロードして保存しておくことで、いつでもどこでも、あらゆるインターネットデバイスから、シンプルな RESTful インターフェイスを使用して画像を処理できます。

画像処理サービスでは、画像処理インターフェイスが利用できます。画像のアップロードは、OSS のアップロードインターフェイスを使用してください。OSS の画像処理をベースにして独自の画像処理サービスを構築できます。

画像処理の基本機能

OSS 画像処理は、次の機能を備えています。

画像処理の使用方法

画像処理では、アクセスに標準の HTTP GET 要求を使用します。すべての処理パラメーターは、URL 内で QueyString でエンコードされます。

匿名アクセス

次の表に示されているように、画像オブジェクトのアクセス権限が公開読み取りである場合、匿名で画像処理にアクセスできます。

バケットの権限 オブジェクトの権限
公開読み取りまたは
公開読み書き
デフォルト
すべての権限 公開読み取りまたは
公開読み書き
  • 次の形式でサードレベルドメインを使用して匿名で画像処理にアクセスします。

    1. http://bucket.<endpoint>/object?x-oss-process=image/action,parame_value
    • Bucket: ユーザーのバケットの名前

    • Endpoint: ユーザーのバケットのデータセンターに必要なアクセスドメイン名

    • Object: OSS にアップロードされた画像オブジェクト

    • Image: 画像処理で予約されている識別子

    • Action: 画像に対する操作 (拡大縮小、トリミング、回転など)

    • Parame: 画像に対する操作に対応するパラメーター

      例:

      1. http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
  • カスタムスタイル。次の形式でサードレベルドメインを使用して匿名で画像処理にアクセスします。

    1. http://bucket.<endpoint>/object?x-oss-process=x-oss-process=style/name
    • Style: ユーザーのカスタムスタイル用にシステムによって予約された識別子
    • Name: カスタムスタイルの名前、つまりコンソール定義スタイルのルール名

      例:

      1. http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/oss-pic-style-w-100
  • イメージサービスのアクセスルールを使用すると、イメージに複数の操作を実装できます。形式は次のとおりです。

    1. http://bucket.<endpoint>/object?x-oss-process=image/action,parame_value/action,parame_value/...

    例:

    1. http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100/rotate,90
  • 画像処理は HTTPS アクセスにも対応しています。

    例:

    1. https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100

権限付与済みアクセス

次の表に示されているように、非公開権限のオブジェクトの場合、画像処理にアクセスするには権限が付与されている必要があります。

バケットの権限 オブジェクトの権限
非公開 デフォルト
すべての権限 非公開

署名を使って生成された画像処理の URL コードは次のとおりです。

  1. var OSS = require('ali-oss');
  2. var client = new OSS({
  3. accessKeyId: '<accessKeyId>',
  4. accessKeySecret: '<accessKeySecret>',
  5. bucket: '<bucketName>',
  6. Endpoint: '<endpoint, such as http://oss-cn-hangzhou.aliyuncs.com>'
  7. });
  8. // Expired for 10 minutes. The image processing style is: "image/resize,w_300".
  9. var signUrl = client.signatureUrl('example.jpg', {expires: 600, 'process' : 'image/resize,w_300'});
  10. console.log("signUrl="+signUrl);

注意:

  • 権限付与済みアクセスは、カスタムスタイルHTTPS、およびカスケード処理に対応しています。

  • 有効期限 (expires) は秒単位で測定されます。

SDK アクセス

直接 SDK を使用して、任意の権限の画像オブジェクトにアクセスして処理できます。

注意: SDK による画像オブジェクトの処理は、カスタムスタイルHTTPS、およびイメージサービスのアクセスルール.に対応しています。

基本操作

画像処理の基本操作には、ドミナントトーンの取得形式の変換イメージのサイズ変更内接円向きの調整輝度、およびウォーターマークの追加があります。

  1. var OSS = require('ali-oss');
  2. var co = require('co');
  3. var client = new OSS({
  4. accessKeyId: '<accessKeyId>',
  5. accessKeySecret: '<accessKeySecret>',
  6. bucket: '<bucketName>',
  7. Endpoint: '<endpoint, such as http://oss-cn-hangzhou.aliyuncs.com>'
  8. });
  9. // Scale
  10. co(function* () {
  11. var result = yield client.get('example.jpg', './example-resize.jpg',
  12. {process: 'image/resize,m_fixed,w_100,h_100'});
  13. }).catch(function (err) {
  14. console.log(err);
  15. });
  16. // Crop
  17. co(function* () {
  18. var result = yield client.get('example.jpg', './example-crop.jpg',
  19. {process: 'image/crop,w_100,h_100,x_100,y_100,r_1'});
  20. }).catch(function (err) {
  21. console.log(err);
  22. });
  23. // Rotate
  24. co(function* () {
  25. var result = yield client.get('example.jpg', './example-rotate.jpg',
  26. {process: 'image/rotate,90'});
  27. }).catch(function (err) {
  28. console.log(err);
  29. });
  30. // Sharpen
  31. co(function* () {
  32. var result = yield client.get('example.jpg', './example-sharpen.jpg',
  33. {process: 'image/sharpen,100'});
  34. }).catch(function (err) {
  35. console.log(err);
  36. });
  37. // Watermark
  38. co(function* () {
  39. var result = yield client.get('example.jpg', './example-watermark.jpg',
  40. {process: 'image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ'});
  41. }).catch(function (err) {
  42. console.log(err);
  43. });
  44. // Format conversion
  45. co(function* () {
  46. var result = yield client.get('example.jpg', './example-format.jpg',
  47. {process: 'image/format,png'});
  48. }).catch(function (err) {
  49. console.log(err);
  50. });
  51. // Image information
  52. co(function* () {
  53. var result = yield client.get('example.jpg', './example-info.txt',
  54. {process: 'image/info'});
  55. }).catch(function (err) {
  56. console.log(err);
  57. });

カスタムスタイル

注意: カスタムスタイルを使用する前に、OSS コンソールに移動して、カスタムスタイル example-sytle を追加してください。

  1. var OSS = require('ali-oss');
  2. var co = require('co');
  3. var client = new OSS({
  4. accessKeyId: '<accessKeyId>',
  5. accessKeySecret: '<accessKeySecret>',
  6. bucket: '<bucketName>',
  7. Endpoint: '<endpoint, such as http://oss-cn-hangzhou.aliyuncs.com>'
  8. });
  9. // Custom styles
  10. co(function* () {
  11. var result = yield client.get('example.jpg', './example-custom-style.jpg',
  12. {process: 'style/example-sytle"'});
  13. }).catch(function (err) {
  14. console.log(err);
  15. });

カスケード処理

  1. var OSS = require('ali-oss');
  2. var co = require('co');
  3. var client = new OSS({
  4. accessKeyId: '<accessKeyId>',
  5. accessKeySecret: '<accessKeySecret>',
  6. bucket: '<bucketName>',
  7. Endpoint: '<endpoint, such as http://oss-cn-hangzhou.aliyuncs.com>'
  8. });
  9. // Cascading processing
  10. co(function* () {
  11. var result = yield client.get('example.jpg', './example-cascade.jpg',
  12. {process: 'image/resize,m_fixed,w_100,h_100/rotate,90'});
  13. }).catch(function (err) {
  14. console.log(err);
  15. });

画像処理ツール

  • 可視化された画像処理ツール ImageStyleViever を使用すると、OSS の画像処理の結果をわかりやすく表示できます。

  • OSS 画像処理機能および使用方法のデモンストレーションページに移動するには、ここをクリックしてください。