加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩

发布时间:2020-12-16 19:35:12 所属栏目:大数据 来源:网络整理
导读:time.Sleep( * time.Minute) } ? tips := [] itemLen := i := ;i i == itemLen - } } type InputArgs OutputPath LocalPath Quality Width } func isPictureFormat(path ) ( , , temp := strings.Split(path, len(temp) , , mapRule := make(map[ mapRule[ ]

time.Sleep( * time.Minute) }

?

tips := [] itemLen := i :=;i i == itemLen - } }

type InputArgs OutputPath LocalPath Quality Width }

  

func isPictureFormat(path ) (,, temp := strings.Split(path, len(temp) <= ,, mapRule := make(map[ mapRule[] = mapRule[] = mapRule[] = mapRule[temp[]] == println(temp[ path,temp[],temp[ } , }

func getFilelist(path errC := os.MkdirAll(inputArgs.OutputPath, errC != fmt.Printf( err := filepath.Walk(path,func(pathFound ( f == f.IsDir() { localPath,format,_ := t := millis := t.Nanosecond() outputPath := inputArgs.OutputPath+strconv.FormatInt(int64(millis),)++ localPath!= ! func() (* fmt.Println( } fmt.Println(+ err != fmt.Printf( }

<div class="cnblogs_code">


    
=== strings.Split((data), ) 
     len(strPice) < inputArgs.LocalPath </span>= strPice[<span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;]
inputArgs.Quality,_ </span>= strconv.Atoi(strPice[<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;])
inputArgs.Width,_   </span>= strconv.Atoi(strPice[<span style="color: #800080"&gt;2</span><span style="color: #000000"&gt;])

pathTemp,top :</span>=<span style="color: #000000"&gt; isPictureFormat(inputArgs.LocalPath)
</span><span style="color: #0000ff"&gt;if</span> pathTemp == <span style="color: #800000"&gt;""</span><span style="color: #000000"&gt; {
    </span><span style="color: #008000"&gt;/*</span><span style="color: #008000"&gt;* 目录 </span><span style="color: #008000"&gt;*/</span>
    <span style="color: #008000"&gt;/*</span><span style="color: #008000"&gt;* 如果输入目录,那么是批量 </span><span style="color: #008000"&gt;*/</span><span style="color: #000000"&gt;
    fmt.Println(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;开始批量压缩...</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)
    rs :</span>=<span style="color: #000000"&gt; []rune(inputArgs.LocalPath)
    end :</span>=<span style="color: #000000"&gt; len(rs)
    substr :</span>= <span style="color: #0000ff"&gt;string</span>(rs[end-<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;:end])
    </span><span style="color: #0000ff"&gt;if</span> substr==<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;/</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt; {
        </span><span style="color: #008000"&gt;/*</span><span style="color: #008000"&gt;* 有 / </span><span style="color: #008000"&gt;*/</span><span style="color: #000000"&gt;
        rs :</span>=<span style="color: #000000"&gt; []rune(inputArgs.LocalPath)
        end :</span>=<span style="color: #000000"&gt; len(rs)
        substr :</span>= <span style="color: #0000ff"&gt;string</span>(rs[<span style="color: #800080"&gt;0</span>:end-<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;])
        endIndex :</span>= strings.LastIndex(substr,<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;/</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)
        inputArgs.OutputPath </span>= <span style="color: #0000ff"&gt;string</span>(rs[<span style="color: #800080"&gt;0</span>:endIndex])+<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;/LghImageCompress/</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;;
    }</span><span style="color: #0000ff"&gt;else</span><span style="color: #000000"&gt; {
        endIndex :</span>= strings.LastIndex(inputArgs.LocalPath,<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;/</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)
        inputArgs.OutputPath </span>= <span style="color: #0000ff"&gt;string</span>(rs[<span style="color: #800080"&gt;0</span>:endIndex])+<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;/LghImageCompress/</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;;
    }
    getFilelist(inputArgs.LocalPath)
}</span><span style="color: #0000ff"&gt;else</span><span style="color: #000000"&gt;{
    </span><span style="color: #008000"&gt;/*</span><span style="color: #008000"&gt;* 单个 </span><span style="color: #008000"&gt;*/</span>
    <span style="color: #008000"&gt;/*</span><span style="color: #008000"&gt;* 如果输入文件,那么是单个,允许自定义路径 </span><span style="color: #008000"&gt;*/</span><span style="color: #000000"&gt;
    fmt.Println(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;开始单张压缩...</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)
    inputArgs.OutputPath </span>= top+<span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;_compress.</span><span style="color: #800000"&gt;"</span>+<span style="color: #000000"&gt;format
    </span><span style="color: #0000ff"&gt;if</span> !<span style="color: #000000"&gt;imageCompress(
        func() (io.Reader,error){
            </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; os.Open(inputArgs.LocalPath)
        },func() (</span>*<span style="color: #000000"&gt;os.File,error) {
            </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; os.Open(inputArgs.LocalPath)
        },inputArgs.OutputPath,inputArgs.Quality,inputArgs.Width,format) {
        fmt.Println(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;生成缩略图失败</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;)
    }</span><span style="color: #0000ff"&gt;else</span><span style="color: #000000"&gt;{
        fmt.Println(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;生成缩略图成功 </span><span style="color: #800000"&gt;"</span>+<span style="color: #000000"&gt;inputArgs.OutputPath)
        finish()
    }
}</span><span style="color: #000000"&gt;

}

<div class="cnblogs_code">

       getDecodeFile func() (*     to             format )      
     file_origin,err :=       err !=         fmt.Println(           
                     
     temp,err =      err !=         fmt.Println(           
           format =     
      format== || format ==         typeImage = 
         origin,err =          err !=             fmt.Println(               
          temp,err =          err !=             fmt.Println(               
          config,err =          err !=             fmt.Println(              
      }  format==         typeImage = 
         origin,err =          err !=             fmt.Println(               
          temp,err =          err !=             fmt.Println(               
          config,err =          err !=             fmt.Println(              
       
     width  := () 
     height := (*config.Height/ 
     canvas :=     file_out,err :=       err !=           
       typeImage==         err =          err!=             fmt.Println(              
      }         err = jpeg.Encode(file_out,canvas,&          err!=             fmt.Println(              
   
      
 }

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读