Imgxs?

服務概述?

Imgxs 是新浪云提供的一個在線實時圖像處理服務。 以http協議提供服務,通過在uri中添加命令實現圖片的縮放、剪裁、特效、水印等功能。

服務開啟及配置?

在管理面板開啟服務?

進入新浪云圖片處理服務管理面板 https://imgxs.sinacloud.com,點擊 +創建新實例 ,選擇一個圖片的源站,并輸入實例的名稱即可創建一個圖片處理的實例。

../../_images/create_instance.png ../../_images/create_detail.png

注解

實例的名稱會用于當前創建的圖片處理服務默認的二級域名,一旦創建無法修改。

選擇認證方式?

創建實例后進入實例的管理頁面,從 實例概覽 頁面選擇操作 訪問驗證 即可選擇認證方式,如圖所示:

../../_images/update_verify.png

認證方式分為以下幾種:

  • 無需認證,可直接訪問。
  • basic 認證,此方式用戶名密碼是通過base64編碼存儲在header中,如果您走的是非加密方式傳輸,該方法容易泄漏密碼。
  • SAE簽名認證。’SAE 用戶名:簽名’。簽名算法:base64(hmac_sha1(密碼, 請求方法+’\n’+請求日期+’\n’+請求的uri))

實例的用戶名和密碼為實例的Accesskey和Secretkey,從 實例概覽 頁面即可查看,如圖所示。

../../_images/view_ak_sk.png

配置上游服務器?

單個實例最多可以配置10個上游服務器,創建實例后可以修改或者新增上游服務器信息。

  • 新增源站

    從實例的管理頁面,選擇 源站管理,點擊 +增加一個源 選擇源站的類型即可新增一個上游服務器,新增成功后系統會自動分配一個源站的標識(3位的字符串)。

    ../../_images/add_ups.png

    注解

    如果源站為多個,請以英文逗號隔開,例如 1.1.1.1,2.2.2.2 ,當源站為多個時,系統會自動按負載均衡策略請求,超時時會重試。

  • 修改源站信息

    從源站的列表中點擊 修改源站 即可修改當前上游服務器信息。

  • 配置上游認證腳本

    如果上游服務器需要認證(例如云存儲的bucket設置為匿名不可讀,storage的bucket設置為私有時),需要配置認證字符串,該字符串實則是一段兼容php語法的腳本。訪問上游資源時會在我們提供的運行時環境中執行這段腳本得到最終的簽名。

    運行時環境提供了以下函數和常量,不允許自定義變量。自定義的字符串常量用英文[雙/單]引號,字符串相加用( . )注意前后的空格。

    名稱 類型 作用 語法以及說明
    scs 函數 新浪云存儲簽名函數 string scs(string $AccessKey, string $SecretKey)
    ssr 函數 新浪storage簽名函數 string ssr(string $accessKey, string $secretKey)
    base64 函數 base64編碼 string base64(string $str)
    hmac_sha1 函數 HMAC-SHA1 運算 string hmac_sha1(string $secretKey, string $str)
    http_time 函數 返回一個可以用在http頭部時間的格式化字符串 string http_time(int $sec) // $sec: 秒為單位的時間戳
    substr 函數 截取字符串 string substr(string $string, int $start [,int $length])
    METHOD 常量 向上游發起請求的方法 METHOD 取值:GET HEAD 等
    DATE_STAMP 常量 向上游發起請求的時間戳 秒為單位的時間戳
    DATE 常量 向上游發起請求的時間 和http_time(DATE_STAMP)是等價的 // DATE的格式:”Thu, 18 Nov 2010 11:27:35 GMT”
    RESOURCE 常量 上游的資源  

    注解

    根據新浪云儲存文檔說明,簽名字符串為: "SINA AccessKey:" . substr(base64(hmac_sha1(SecretKey, METHOD . "\n\n\n" . DATE . "\n" . RESOURCE)), 5, 10) 等價于scs函數。

綁定獨立域名?

圖片處理實例支持綁定獨立域名,可以綁定獨立域名訪問該實例。從實例的管理首頁,選擇左側標簽 域名綁定 即可。點擊 +綁定一個域名 輸入待綁定的域名提交后按系統提示完成驗證域名解析和CNAME解析即可。

../../_images/bind_domain.png

注解

  • 僅支持已備案域名綁定,如果未備案請從 http://ba.sinacloud.com 先完成備案。
  • 當前普通用戶單實例支持綁定一個獨立域名,如果需要支持多個,請升級賬戶等級。

上傳SSL證書開啟HTTPS訪問?

圖片處理服務綁定的獨立域名支持上傳SSL證書開啟HTTPS訪問,綁定獨立域名通過驗證后即可上傳SSL證書。從域名列表的 操作 中選擇 上傳證書,按要求輸入證書內容、證書密鑰、中間證書內容即可。

注解

系統默認分配的二級域名支持HTTPS訪問,例如 https://imgxs.applinzi.com

保存指令(縮短URL)?

當對圖片處理的指令較多時,如果在每次請求都帶上指令,會導致圖片的URL較長,可以將指令保存為一個指令集。 例如 f_webp,w_670,h_500,t_hello+sae-jwwz-30-FF4500–10-30,p_dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw==-70–northeast|t_Imgxs-yst-50-DEB887-south 對圖片做大小變化、并加水印,指令較長。可以從管理面板中保存該指令,進入管理面板,選擇左側導航 指令管理,進入指令管理功能。點擊 +增加一個指令,輸入指令列表,提交后系統會自動生成一個標識。

../../_images/add_cmd.png

例如源站訪問地址為 http://imgxs.applinzi.com/f_webp,w_670,h_500,t_hello+sae-jwwz-30-FF4500–10-30,p_dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw==-70–northeast|t_Imgxs-yst-50-DEB887-south/scs/testimgxs/hunter.jpg ,保存指令后,系統分配的標識為 sae ,圖片訪問路徑可以縮短為 http://imgxs.applinzi.com/sc_sae/scs/testimgxs/hunter.jpg

注解

保存后生成的指令標識需要加 sc_ 前綴才能訪問。

設置404默認圖片?

如果需要使用默認的占位圖片或者404圖片,可以在源站的同級目錄下放置一個名為 notfound.jpg 的圖片。

注解

當前 notfound.jpg 需要放在同級目錄下,例如你訪問的資源在 /a/b/c 目錄下,需要將 notfound.jpg 放在/a/b/c/notfound.jpg這個位置。

服務使用?

訪問方式?

http://appname.applinzi.com/cmd/ups/ups-path

注解

  • appname是服務開啟設置的服務名(例如imgxs)。
  • cmd就是圖片處理指令(例如 w_400,h_300 將圖片處理為400像素寬,300像素高)。
  • ups是配置的上游服務器 (添加源站后系統自動分配,例如 scs)。
  • ups-path是上游圖片(例如源站為云存儲時,一個bucket為testimgxs,該bucket下有一張名為hunter.jpg的圖片,路徑則為 /testimgxs/hunter.jpg )。組合以上,處理后的圖片訪問地址為 http://imgxs.applinzi.com/w_400,h_300/scs/testimgxs/hunter.jpg ,圖片支持png,jpeg,jpg,webp這幾種格式。

錯誤代碼?

錯誤以json格式返回,json包括了Code和Message和Resource字段。

如:

  • {“Resource”:”/w_500,sc_sae/scs/testimgxs/hunter.jpg”,”Message”:”Group[1] SubCmd(sc_sae) mutually exclusive of cmd”,”Code”:”InvalidRequest”} 代表指令sc和w指令互斥。
  • {“Resource”:”/w_500/se1/testimgx/huntefdsar.jpg”,”Message”:”resolver host error”,”Code”:”UpstreamError”} 代表上游服務器配置錯誤。

其中錯誤的Code包括:

  • ServiceClose: 沒有開啟服務或服務已關閉。
  • InvalidRequest: 請求uri不正確,具體錯誤還需要看Message。
  • InvalidFileType: 不支持上游文件類型。
  • UpstreamError: 上游錯誤。
  • UnAuthorized:服務認證不通過。
  • NotFound: 上游資源不存在。默認還會獲取相同路徑下的notfound.jpg圖片做處理,只有兩個資源都不存在才會報錯。
  • InternalError:服務端異常。

指令說明?

指令是對圖片的操作方式,可以由多組指令共同處理,每組指令之間通過管道符(|)分割。 組內指令用英文逗號分隔,同一組內不允許有相同的指令。 例如:w_300,h_300,r_30,p_png,t_hello+world–30-FF4500-southeast|t_hello+liwq–50–center

版本(v)
  • 格式:v_version
  • 取值:version取值0-100
  • 說明:用于刷新緩存,多組指令只有最后一組指令中的版本生效。
圖片格式(f)
  • 格式:f_format
  • 取值:format 取值 png,jpeg,jpg,webp,tiff,tif,gif
  • 說明:轉換為指定的圖片格式。合成gif格式的圖片還需要特效指令的支持。如果客戶端支持建議使用webp格式。
圖片質量(q)
  • 格式:q_quality
  • 取值:quality取值0-100,默認為75。
  • 說明:圖片壓縮質量,僅對jpeg、jpg、webp、tiff、tif格式有作用。如果沒有特殊需求,建議使用默認quality。
圖片寬度(w)
  • 格式:w_width
  • 取值:width 取值0-4000。
  • 說明:如果指定了寬度沒指定高度,則按照寬度等比例縮放圖片。
圖片高度(h)
  • 格式:h_highly
  • 取值:highly取值0-3000。
  • 說明:如果指定了高度沒指定寬度,則按照高度等比例縮放圖片。如果同時指定了寬度和高度,則不保證原圖比例。
剪裁(c)
  • 格式:c_[gravity-]x-y
  • 取值:gravity 為圖片剪裁的位置,可選。若不指定,x、y 為選定的橫縱坐標,0-0為圖片的左上角。若指定gravity,x、y為相對于gravity的橫縱坐標。
    gravity 取值除了位置說明中的northwest等值,還可以指定用來剪裁單個人臉的’face’和多個人臉的’faces’。 gravity 還可以指定為centergreed,從圖片中間位置貪婪地剪裁一個正方形圖像,方便制作九宮格縮略圖。
  • 說明:
圓角(r)
  • 格式:r_radius
  • 取值:radius取值0-360或max。
  • 說明:圓角剪裁,不支持jpg、jpeg、gif格式
旋轉(re)
  • 格式:re_degrees
  • 取值:degrees取值0-360,flip:垂直翻轉,flop:水平翻轉。
  • 說明:圖片旋轉。
特效(e)
  • 格式:e_effect-parameter
  • 取值:effect取值
    • grayscale: 黑白。 (參數: 無)
    • negate: 反色。 (參數: 無)
    • contrast: 自動對比度。 (參數: 無)
    • oilpaint: 油畫。 (參數: parameter取值1-8,默認3.)
    • brightness: 亮度。 (參數: parameter取值0-1000,默認120.)
    • blur: 模糊。 (參數: parameter取值0-2000,默認50.)
    • sharpen: 銳化。 (參數: parameter取值1-2000,默認50.)
    • spread: 毛玻璃。 (參數: parameter取值1-100,默認2.)
    • charcoal: 炭筆。 (參數: parameter取值1-100,默認2.)
    • red: 增加紅色。 (參數: parameter取值1-100,默認2.)
    • green: 增加綠色。 (參數: parameter取值1-100,默認2.)
    • blue: 增加藍色。 (參數: parameter取值1-100,默認2.)
    • yellow: 增加黃色。 (參數: parameter取值1-100,默認2.)
    • gray: 灰色。 (參數: parameter取值1-100,默認2.)
    • mosaic: 拼接。 (參數: parameter取值pic-w-h-x-y,pic為圖片的base64編碼,為空則為uri指定的圖片。w為圖片寬度,h為圖片高度,x,y拼接橫縱坐標。)
    • dynamic: 動圖。 (參數: parameter取值pics-delay,pics為多張圖片的base64編碼,格式:prefix[seq1,seq2,seq3].format,最多允許8張圖片。同時必須指定圖片格式為gif。例如:echo -n 'dynamic/pic_[1,3,4].jpg' |base64 把pic_1.jpg pic_3.jpg pic_4.jpg 和uri指定的圖片4張圖片合成gif動圖。)
  • 說明:
邊框(b)
  • 格式:b_width-highly-color
  • 取值:width邊框寬度,highly邊框高度。color邊框顏色,顏色為顏色的代碼(如:FF4500)。
  • 說明:邊框。
文字水印(t)
  • 格式:t_text-font-size-color-gravity-x-y-angle
  • 取值:text為水印文字。 font 為字體樣式。size為字體大小。color為字體顏色,格式為顏色代碼(如:FF4500)。 gravity 為文字位置。x、y為相對于gravity的橫縱坐標。angle為文字角度。
  • 說明:添加文字水印。
圖片水印(p)
  • 格式:p_picture-w-h-gravity-x-y-re
  • 取值:picture為水印圖片,w為水印圖片的寬度,h為水印圖片的高度,gravity 為水印圖片位置,x、y為水印圖片添加到原圖相對于gravity的橫縱坐標,re為水印圖片旋轉的角度。
  • 說明:添加圖片水印。picture為水印圖片的base64編碼。例如:echo -n 'logo/sinacloud_logo.png' |base64
命令簡化(sc)
  • 格式:sc_cmd
  • 取值:cmd 為上述多組指令組合的字符串。
  • 說明:簡化命令。簡化指令只能和版本一同使用,否則會報指令無效。在控制面板設置簡化指令,例如設置了sc1:w_300,h_300,r_30,p_png,t_hello+world–30-FF4500-southeast|t_hello+liwq–50–center。則通過sc_sc1就可以調用到該簡化指令。簡化指令為開發提供了方便。

字體樣式?

字體 命令 說明
微軟仿宋 msfs
微軟雅黑 msyh
微軟楷體 mskt
少兒簡體 fzsejt
瘦金書簡體 fzsjsjt
簡花蝶體 jhdt
簡娃娃篆 jwwz
微軟簡仿宋 msjfs 僅支持英文
微軟簡行楷 msjxk 僅支持英文
淹水體 yst 僅支持英文

位置說明?

northwest   |   north    |   northeast
------------+------------+------------
west        |   center   |        east
------------+------------+------------
southwest   |   south    |   southeast

指令示例?

示例實例說明?

  • 以下示例實例名為imgxs,上游服務器scs(上游服務器標識)為云儲存服務,云存儲bucket為testimgxs,該bucket設置為匿名用戶不可讀,需要通過簽名才能訪問,該實例上游服務器scs已經配置簽名為 云存儲標準簽名
  • 測試圖片為testimgxs(bucket)下的hunter.jpg圖片,原圖大小為1024x768。
  • 配置了簡化指令sc1為f_webp,w_670,h_500,t_hello+sae-jwwz-30-FF4500–10-30,p_dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw==-70—580-10|t_Imgxs-yst-50-DEB887-south

格式轉換?

把原圖jpg格式轉為png格式。

http://imgxs.applinzi.com/f_png/scs/testimgxs/hunter.jpg

圖片縮放?

圖片圓角、旋轉?

格式轉換+按高度等比例縮小+圓角+旋轉+增加藍色效果

http://imgxs.applinzi.com/f_png,h_300,r_90,re_330,e_blue-10/scs/testimgxs/hunter.jpg

加邊框?

加一個金色的邊框:色碼表,金色的顏色代碼為#FFD700

http://imgxs.applinzi.com/f_png,h_300,b_10-3-ffd700/scs/testimgxs/hunter.jpg

加文字水印?

添加文字水印:在圖片左上角添加“hello world”,字體樣式為微軟仿宋,大小為20px,顏色為金黃色,坐標為(5,20)。在圖片右下角添加日期。

http://imgxs.applinzi.com/f_png,h_300,t_hello+world-msfs-20-ffd700–5-20%7Ct_2020.05.01–10–southeast-10-10-90/scs/testimgxs/hunter.jpg

加圖片水印?

添加圖片水印:在圖片左上角添加一個寬度為50px的logo,logo后添加一行文字“@sae”,在圖片下方添加一個logo。其中dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw== 為logo圖片路徑的base64編碼。

http://imgxs.applinzi.com/f_png,w_500,p_dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw==-50–northwest-0-0,t_@sae–15-00ffff–55-13%7Cp_dGVzdGltZ3hzL2xvZ28vc2luYWNsb3VkLnBuZw==—south/scs/testimgxs/hunter.jpg

生成動圖?

把apple.jpg、apple1.jpg、apple2.jpg、apple3.jpg、apple4.jpg這5張圖片合成一張動圖:

http://imgxs.applinzi.com/f_gif,w_400,h_250,t_sae%E5%88%B6%E4%BD%9C-jwwz-30–southeast–20,e_dynamic-dGVzdGltZ3hzL2FwcGxlL2FwcGxlX1sxLDIsMyw0XS5qcGc=-200/scs/testimgxs/apple/apple.jpg

注解

圖片的格式:echo -n 'testimgxs/apple/apple_[1,2,3,4].jpg' |base64

河南22选5开奖
  • <em id="xpjve"><ol id="xpjve"></ol></em>

          1. <em id="xpjve"><ol id="xpjve"></ol></em>