91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Go語言圖片處理如何進行壓縮和解壓

小樊
88
2024-11-07 12:42:41
欄目: 編程語言

在Go語言中,可以使用第三方庫進行圖片處理,例如imageimage/jpeg等。下面是一個使用image/jpeg庫進行圖片壓縮和解壓的示例代碼:

package main

import (
    "image/jpeg"
    "os"
)

func compressImage(inputPath string, outputPath string, quality int) error {
    // 打開輸入文件
    inputFile, err := os.Open(inputPath)
    if err != nil {
        return err
    }
    defer inputFile.Close()

    // 解碼圖片
    img, err := jpeg.Decode(inputFile)
    if err != nil {
        return err
    }

    // 創建輸出文件
    outputFile, err := os.Create(outputPath)
    if err != nil {
        return err
    }
    defer outputFile.Close()

    // 設置壓縮質量
    opts := &jpeg.Options{Quality: quality}

    // 壓縮圖片并保存到輸出文件
    err = jpeg.Encode(outputFile, img, opts)
    if err != nil {
        return err
    }

    return nil
}

func decompressImage(inputPath string, outputPath string) error {
    // 打開輸入文件
    inputFile, err := os.Open(inputPath)
    if err != nil {
        return err
    }
    defer inputFile.Close()

    // 解碼圖片
    img, err := jpeg.Decode(inputFile)
    if err != nil {
        return err
    }

    // 創建輸出文件
    outputFile, err := os.Create(outputPath)
    if err != nil {
        return err
    }
    defer outputFile.Close()

    // 保存圖片到輸出文件
    err = jpeg.Encode(outputFile, img, nil)
    if err != nil {
        return err
    }

    return nil
}

在上面的代碼中,compressImage函數用于壓縮圖片,其中inputPath為輸入圖片的路徑,outputPath為輸出壓縮圖片的路徑,quality為壓縮質量(范圍為1-100)。decompressImage函數用于解壓圖片,其中inputPath為輸入壓縮圖片的路徑,outputPath為輸出解壓圖片的路徑。

需要注意的是,上述代碼僅支持JPEG格式的圖片壓縮和解壓,如果需要支持其他格式的圖片,可以使用其他第三方庫,例如image/png等。

0
海宁市| 凉城县| 灵丘县| 凌源市| 双牌县| 花垣县| 永康市| 靖安县| 霍州市| 綦江县| 莱阳市| 昭苏县| 长顺县| 龙井市| 新竹县| 达拉特旗| 新津县| 乐亭县| 阿鲁科尔沁旗| 北流市| 双柏县| 阜康市| 崇信县| 乌苏市| 岳普湖县| 漾濞| 定州市| 绥江县| 东台市| 桦川县| 鄂温| 双牌县| 廊坊市| 甘谷县| 贵港市| 嘉禾县| 年辖:市辖区| 合肥市| 弥勒县| 当涂县| 宜州市|