scala亂彈:切割圖片

等分一張11M的jpg用以打印,網(wǎng)上找了半天工具,不是要注冊就是文件過大切不了,索性自己寫代碼搞定!

用的還是java的東西。


import java.awt.image.BufferedImage

import javax.imageio.ImageIO

import java.io.{ByteArrayOutputStream, File, FileOutputStream}



object AAA {

  def main(args: Array[String]): Unit ={

    val img = ImageIO.read(new File("C:\\Users\\skype\\Downloads\\aaa-images\\0001.jpg"))

    val width = img.getWidth

    val height = img.getHeight

    val nh = width * 297 / 210

    val x = height / nh

    println(width)

    println(height)

    println(nh)

    println(x)

    (0 to x).toList.foreach{ n =>

      if(((n * nh) - 200) < height){

        println("***")

        println(n)

        val imageResult = new BufferedImage(width, nh, BufferedImage.TYPE_INT_RGB)

        var _imgRGB = new Array[Int](width * nh)

        _imgRGB = img.getRGB(0, n * (nh - 200), width, nh, _imgRGB, 0, width)

        imageResult.setRGB(0, 0, width, nh, _imgRGB, 0, width)

        val out = new ByteArrayOutputStream

        val fos = new FileOutputStream(new File(s"C:\\Users\\skype\\Downloads\\aaa-images\\0001-$n.jpg"))

        ImageIO.write(imageResult, "jpg", out)

        out.writeTo(fos)

        out.flush()

        out.close()

      }

    }

  }

}

A4紙是210*297,由于我的原圖是豎向的,寬度不變,按照這個比例很容易算出切成幾份以及每份高度。循環(huán)取原圖對應區(qū)域的RGB信息再設(shè)置給每一份就搞定了。

n * (nh - 200)這里設(shè)置了下一張圖頭的200px和上一張尾重合。有點銜接,看起來易于接受。

拷進idea,右鍵Run AAA。搞定收工回家吃飯!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一. 簡介 對圖片做高斯模糊,有非常多的方法 高斯模糊的計算量很大,為減少計算時間,有兩種優(yōu)化途徑: 1.使用re...
    tiger桂閱讀 1,320評論 0 0
  • 7.1 壓縮圖片 一、基礎(chǔ)知識 1、圖片的格式 jpg:最常見的圖片格式。色彩還原度比較好,可以支持適當壓縮后保持...
    AndroidMaster閱讀 2,717評論 0 13
  • 【情境】 菇?jīng)鰝兌枷M苡米詈玫淖o膚品保養(yǎng)自己,可是我們可能忽略了一點,皮膚最主要的作用是屏障而不是吸收,將外部給...
    江少_f666閱讀 483評論 4 2
  • Photoshop制作時尚大氣的3D立體字教程~~~~~~來自站酷/namco1029(聲明:其內(nèi)部作品版權(quán)歸屬原...
    2f79fa78bda3閱讀 673評論 0 1

友情鏈接更多精彩內(nèi)容