日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Node.js圖片處理

圖片處理是OSS提供的海量、安全、低成本、高可靠的圖片處理服務。原始圖片上傳到OSS后,您可以通過簡單的RESTful接口,在任何時間、任何地點、任何互聯網設備上對圖片進行處理。

圖片處理使用

圖片處理使用標準的HTTP GET請求。您可以在URLQueryString中設置處理參數。

如果圖片文件的訪問權限為私有,必須通過授權才能進行訪問。

  • 匿名訪問

    如果圖片文件(Object)的訪問權限是公共讀,如下表所示的權限,則可以匿名訪問圖片服務。

    Bucket權限

    Object權限

    公共讀私有寫(public-read)或公共讀寫(public-read-write)

    默認(default)

    任意權限

    公共讀私有寫(public-read)或公共讀寫(public-read-write)

    您可以通過如下格式的三級域名匿名訪問處理后的圖片:

    http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=image/<yourAction>,<yourParamValue>

    參數

    描述

    yourBucketName

    存儲空間名稱

    yourEndpoint

    存儲空間所在地域的訪問域名

    yourObjectName

    圖片文件名稱

    image

    圖片處理的保留標志符

    yourAction

    對圖片做的操作,如縮放、裁剪、旋轉等

    yourParamValue

    對圖片做的操作所對應的參數

    • 基礎操作

      例如,將圖縮略成寬度為100,高度按比例處理:

      http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
    • 自定義樣式

      使用如下格式的三級域名匿名訪問圖片處理:

      http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=style/<yourStyleName>
      • style:自定義樣式的保留標志符。

      • yourStyleName:自定義樣式名稱,即通過控制臺自定義樣式的規則名稱。

      例如:

      http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=style/oss-pic-style-w-100
    • 級聯處理

      通過級聯處理,可以對一張圖片順序進行多個操作,格式如下:

      http://<yourBucketName>.<yourEndpoint>/<yourObjectName>?x-oss-process=image/<yourAction1>,<yourParamValue1>/<yourAction2>,<yourParamValue2>/...

      例如:

      http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100/rotate,90
    • 支持HTTPS訪問

      圖片服務支持HTTPS訪問,例如:

      https://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,w_100
  • 授權訪問

    對私有權限的文件(Object),如下表所示的權限,必須通過授權才能訪問圖片服務。

    Bucket權限

    Object權限

    私有(private)

    默認權限(default)

    任意權限

    私有(private)

    以下代碼用于生成帶簽名的圖片處理URL:

    const OSS = require("ali-oss");
    
    const client = new OSS({
      // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
      region: "oss-cn-hangzhou",
      // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
      accessKeyId: process.env.OSS_ACCESS_KEY_ID,
      accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
      authorizationV4: true,
      // yourbucketname填寫存儲空間名稱。
      bucket: "examplebucket",
    });
    // 過期時間10分鐘,圖片處理式樣"image/resize,w_300"。
    const signUrl = client.signatureUrl("example.png", {
      expires: 600,
      process: "image/resize,w_300",
    });
    console.log("signUrl=" + signUrl);
    說明
    • 授權訪問支持自定義樣式、HTTPS、以及級聯處理。

    • 指定過期時間expires的單位是秒。

  • SDK訪問

    對于任意權限的圖片文件,都可以直接使用SDK訪問和處理。

    SDK處理圖片文件支持自定義樣式、HTTPS和級聯處理。

    • 基礎操作

      以下代碼展示了圖片處理的基礎操作:

      const OSS = require('ali-oss');
      
      const client = new OSS({
        // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
        region: 'yourregion',
        // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
        accessKeyId: process.env.OSS_ACCESS_KEY_ID,
        accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
        authorizationV4: true,
        // yourbucketname填寫存儲空間名稱。
        bucket: 'yourbucketname'
      });
      
      // 將圖片縮放為固定寬高100 px。
      async function scale() {
        try {
          const result = await client.get('example.jpg', './example-resize.jpg', { process: 'image/resize,m_fixed,w_100,h_100'});
        } catch (e) {
          console.log(e);
        }
      }
      
      scale()
      
      // 從坐標(100,100)開始,將圖片裁剪為寬高100 px。
      async function cut() {
        try {
           const result = await client.get('example.jpg', './example-crop.jpg', { process: 'image/crop,w_100,h_100,x_100,y_100,r_1'});
        } catch (e) {
          console.log(e)
        }
      }
      
      cut()
      
      // 將圖片旋轉90°。
      async function rotate() {
        try {
          const result = await client.get('example.jpg', './example-rotate.jpg', { process: 'image/rotate,90'});
        } catch (e) {
          console.log(e);
        }
      }
      
      rotate()
      
      // 將圖片進行銳化,銳化參數為100。
      async function sharpen() {
        try {
          const result = await client.get('example.jpg', './example-sharpen.jpg', { process: 'image/sharpen,100'});
        } catch (e) {
          console.log(e);
        }
      }
      
      sharpen()
      
      // 在圖片中添加水印。
      async function watermark() {
        try {
          const result = await client.get('example.jpg', './example-watermark.jpg', { process: 'image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ'});
        } catch (e) {
          console.log(e);
        }
      }
      
      watermark()
      
      // 將圖片進行格式轉換。
      async function format() {
        try {
          const result = await client.get('example.jpg', './example-format.jpg', { process: 'image/format,png'});
        } catch (e) {
          console.log(e);
        }
      }
      
      format()
      
      // 獲取圖片信息。
      async function info() {
        try {
          const result = await client.get('example.jpg', './example-info.txt', {process: 'image/info'});
        } catch (e) {
          console.log(e);
        }
      }
      
      info()
    • 自定義樣式

      說明

      需要事先到OSS控制臺添加自定義式樣example-style。

      以下代碼用于自定義圖片樣式:

      const OSS = require('ali-oss');
      
      const client = new OSS({
        // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
        region: 'yourregion',
        // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
        accessKeyId: process.env.OSS_ACCESS_KEY_ID,
        accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
        authorizationV4: true,
        // yourbucketname填寫存儲空間名稱。
        bucket: 'yourbucketname'
      });
      
      // 將圖片縮放為固定寬高100 px。
      async function scale() {
        try {
          const result = await client.get('example.jpg', './example-resize.jpg', { process: 'image/resize,m_fixed,w_100,h_100'});
        } catch (e) {
          console.log(e);
        }
      }
      
      scale()
      
      // 從坐標(100,100)開始,將圖片裁剪為寬高100 px。
      async function cut() {
        try {
           const result = await client.get('example.jpg', './example-crop.jpg', { process: 'image/crop,w_100,h_100,x_100,y_100,r_1'});
        } catch (e) {
          console.log(e)
        }
      }
      
      cut()
      
      // 將圖片旋轉90°。
      async function rotate() {
        try {
          const result = await client.get('example.jpg', './example-rotate.jpg', { process: 'image/rotate,90'});
        } catch (e) {
          console.log(e);
        }
      }
      
      rotate()
      
      // 將圖片進行銳化,銳化參數為100。
      async function sharpen() {
        try {
          const result = await client.get('example.jpg', './example-sharpen.jpg', { process: 'image/sharpen,100'});
        } catch (e) {
          console.log(e);
        }
      }
      
      sharpen()
      
      // 在圖片中添加水印。
      async function watermark() {
        try {
          const result = await client.get('example.jpg', './example-watermark.jpg', { process: 'image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ'});
        } catch (e) {
          console.log(e);
        }
      }
      
      watermark()
      
      // 將圖片進行格式轉換。
      async function format() {
        try {
          const result = await client.get('example.jpg', './example-format.jpg', { process: 'image/format,png'});
        } catch (e) {
          console.log(e);
        }
      }
      
      format()
      
      // 獲取圖片信息。
      async function info() {
        try {
          const result = await client.get('example.jpg', './example-info.txt', {process: 'image/info'});
        } catch (e) {
          console.log(e);
        }
      }
      
      info()
    • 級聯處理

      以下代碼用于級聯處理圖片:

      const OSS = require('ali-oss');
      
      const client = new OSS({
        // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
        region: 'yourregion',
        // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_IDOSS_ACCESS_KEY_SECRET。
        accessKeyId: process.env.OSS_ACCESS_KEY_ID,
        accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
        authorizationV4: true,
        // yourbucketname填寫存儲空間名稱。
        bucket: 'yourbucketname'
      });
      
      // 級聯處理
      async function cascade () {
        try {
          const result = await client.get('example.jpg', './example-cascade.jpg', {process: 'image/resize,m_fixed,w_100,h_100/rotate,90'});
        } catch (e) {
          console.log(e);
        }
      }
      cascade();

圖片處理持久化

以下代碼用于圖片處理持久化:

const OSS = require('ali-oss');

const client = new OSS({
  // yourregion填寫Bucket所在地域。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'yourregion',
  // 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // yourbucketname填寫存儲空間名稱。
  bucket: 'yourbucketname'
});

const sourceImage = 'sourceObject.png';
const targetImage = 'targetObject.jpg';
async function processImage(processStr, targetBucket) {
  const result = await client.processObjectSave(
    sourceImage,
    targetImage,
    processStr,
    targetBucket
  );
  console.log(result.res.status);
}

// 圖片處理持久化:縮放,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/resize,m_fixed,w_100,h_100", "target bucket")

// 圖片處理持久化:裁剪,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/crop,w_100,h_100,x_100,y_100,r_1", "target bucket")

// 圖片處理持久化:旋轉,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/rotate,90", "target bucket")

// 圖片處理持久化:銳化,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/sharpen,100", "target bucket")

// 圖片處理持久化:水印,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ", "target bucket")

// 圖片處理持久化:格式轉換,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/format,jpg", "target bucket")

// 圖片處理持久化:格式轉換,并設置保存圖片處理持久化結果的目標bucket。
processImage("image/format,jpg", "target bucket")

圖片處理工具

可視化圖片處理工具ImageStyleViewer,可以直觀的看到OSS圖片處理的結果。

相關文檔

  • 關于圖片處理支持的參數說明,請參見處理參數。

  • 關于圖片處理的完整示例代碼,請參見GitHub示例