<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 前言 > 壓縮圖片中是非常好的,但是有些圖片 是不能壓縮的,比如圖片內容是1px的,還是循環的,壓縮后發現圖片不能使用。好好認真的看文檔,別挑著看,說看不懂。在此希望能幫助需要幫助的人。 ## api說明 #### 第一步:安裝依賴 ``` npm install --save tinify ``` #### 第二步:認證 > 必須先使用私鑰進行認證。這個key需要在官方網站上進行申請 api_key ```js const tinify = require("tinify"); tinify.key = "YOUR_API_KEY"; ``` ##### [可選]驗證api_key 是否可用 > 此方法只是可選,可以有效校驗下是否有效 ```js const tinify = require("tinify"); tinify.key = "YOUR_API_KEY"; tinify.validate(function(err) { if (err) throw err; // 如果拋出異常,驗證API密鑰失敗。 // 驗證成功 }) ``` #### 第三步:壓縮調用方法 #### fromFile 讀取本地圖片方法 > 用于加載本地圖片,上傳到tinify服務器上,。是同步語法。 ``` 語法: tinify.fromFile(本地地址) ``` > 舉一個栗子: ```js const tinify = require("tinify"); tinify.key = "YOUR_API_KEY"; // 網絡地址: let source = tinify.fromFile('https://tinypng.com/images/panda-happy.png') // 本地地址,比如:window的D盤demo文件夾下的一張1.png let source = tinify.fromFile('D:\demo\1.png') // 進行保存,可以看看下面的 toFile 或者 _url 對象 source.toFile("optimized.jpg"); // 壓縮完成后,會自動保存到本地設備項目目錄中保存 optimized.jpg 文件 ``` #### fromUrl 讀取網絡圖片方法 > 加載遠程網絡地址進行壓縮。作用和 fromFile 是一樣的,都是上傳用的 ```js const source = tinify.fromUrl("https://tinypng.com/images/panda-happy.png"); source.toFile("optimized.jpg"); ``` #### toFile 保存本地方法 > 通過 fromFile 或者 fromUrl 方法進行上傳,那么我們使用 toFile方法進行保存到本地。 ``` 語法糖: toFile(路徑+[名稱]或名稱(當前項目路徑),[error callback]) # 返回的對象是: promise 對象,也就是說,可以使用 .then(() => { // ..... 代碼塊 }) .catch((err) => { console.log(err) }) ``` > 舉個栗子: ```js const tinify = require("tinify"); tinify.key = "YOUR_API_KEY"; // 本地地址,比如:window的D盤demo文件夾下的一張1.png let source = tinify.fromFile('D:\demo\1.png') /** * 可以直接連著寫: * tinify.fromFile('D:\demo\1.png').toFile('demo.png') */ // 不連著寫: // source.toFile('demo.png') // 發生異常錯誤回調寫法 source.toFile('D:\demo', function(err, sourceData) { // 此方法用于錯誤異常回調,成功是不進行回調的 // if (err) throw err; // 簡單處理錯誤 // 詳細處理: if (err instanceof tinify.AccountError) {// 驗證您的API密鑰和帳戶限制 console.log("The error message is: " + err.message); } else if (err instanceof tinify.ClientError) { //檢查圖片來源和選項。 } else if (err instanceof tinify.ServerError) { // Tinify API出現臨時問題。 } else if (err instanceof tinify.ConnectionError) { // 發生網絡連接錯誤。 } else { // 其他錯誤,不是 tinify 的。 console.log(err) } }) .then(() => { // ..... 代碼塊 }) .catch((err) => { console.log(err) }) ``` | error錯誤 | 說明 | | --- | --- | | AccountError | 您的API密鑰或API帳戶存在問題。您的請求無法被授權。如果達到了壓縮限制,則可以等到下一個日歷月或[升級您的訂閱](https://tinypng.com/developers)。驗證API密鑰和帳戶狀態后,您可以重試該請求。 | | ClientError | 由于提交的數據存在問題,因此無法完成請求。異常消息將包含更多信息。您不應重試該請求。 | |ServerError | 由于Tinify API暫時存在問題,因此無法完成請求。幾分鐘后重試該請求是安全的。如果您長時間反復看到此錯誤,請[與我們聯系](mailto:support@tinify.com)。 | | ConnectionError | 無法發送請求,因為連接Tinify API時出現問題。您應該驗證網絡連接。重試該請求是安全的。 | **promise 對象:** > 執行toFile 方法后,使用promise對象的 then 。 ```js tinify.fromFile('D:\demo\1.png') toFile('D:\demo') .then(() => { // ..... 代碼塊 }) .catch((err) => { console.log(err) }) ``` #### source._url 是 promise對象 > 這個是無意間發現的,官方沒有寫,當上傳完成后,可以返回臨時有效url地址。能不用這個的最好別使用,原因浪費。 - 注意:這個使用用了這個,那么 toFile 方法是不能用的。 - 注意:這個使用用了這個,那么 toFile 方法是不能用的。 - 注意:這個使用用了這個,那么 toFile 方法是不能用的。 ```js const tinify = require("tinify"); tinify.key = "YOUR_API_KEY"; let source = tinify.fromFile('https://tinypng.com/images/panda-happy.png') source._url .then((data) => { console.log(data); // 返回結果:https://api.tinify.com/output/vx9735ympayt7f3q9jmpetq2m0autaat }) .catch((err) => { console.log(err) }) ``` #### 修改圖片信息 > 我們可以設置圖片大小、縮小(不能放大)、裁剪、 #### 保留元數據 > 保留元數據會增加壓縮文件的大小。支持保存版權信息(copyright),GPS 位置(location )、日期(creation)進行保留,不會丟失。 **preserve 方法** > 這個方法可以將 版權信息 版權信息(copyright),GPS 位置(location )(僅JPEG)、日期(creation)進行修改。 ``` const source = tinify.fromFile("large.jpg"); // 必須在fromFile處寫 const copyrighted = source.preserve("copyright", "creation"); // 必須在toFile之前 copyrighted.toFile("optimized-copyright.jpg"); ``` #### 檢測壓縮數量 > 一個月有免費的500張次數,超出就得收費,在此感謝官方提供的免費500。愿你們遠離新冠病毒。 ```js let compressionsThisMonth = tinify.compressionCount; // 返回的是 number 類型 ``` ### Amazon S3 與 Google Cloud Storage > 由于本人沒有 s3 與 谷歌云存儲,只能不做api嘗試了
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看