美文网首页
scala乱弹:切割图片

scala乱弹:切割图片

作者: 小伙比较帅呆 | 来源:发表于2018-09-13 23:04 被阅读0次

等分一张11M的jpg用以打印,网上找了半天工具,不是要注册就是文件过大切不了,索性自己写代码搞定!

用的还是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,由于我的原图是竖向的,宽度不变,按照这个比例很容易算出切成几份以及每份高度。循环取原图对应区域的RGB信息再设置给每一份就搞定了。

n * (nh - 200)这里设置了下一张图头的200px和上一张尾重合。有点衔接,看起来易于接受。

拷进idea,右键Run AAA。搞定收工回家吃饭!

相关文章

  • scala乱弹:切割图片

    等分一张11M的jpg用以打印,网上找了半天工具,不是要注册就是文件过大切不了,索性自己写代码搞定! 用的还是ja...

  • 图片切割

  • java 图片切割

    工具类 单方面测试

  • 简易图片切割

    import osimport cv2 def isCut(imgPath):'''判断图片是否需要切割''' d...

  • canvas绘图

    1.创建路径绘制线条(直线和折线、多边形) 2.绘制图片 3.切割图片 使用clip()切割图片 4.画布缩放旋转...

  • canvas 实现图片切割

    场景 有一张图片,想将图片的左半部分切出来,做成新的图片 实现 利用canvas的drawImage方法,可以去这...

  • 使用java切割图片

    前端使用了vue框架,切图有困难,所以切图这个工作交给我,总结一下. 入参 使用了thumbnailator框架 ...

  • ORC识别身份证遇到的问题--已完成

    身份证图片拍照存在亮度不均的情况,导致过滤出现部分区域无法识别。 初步解决办法: 1.切割图片,按照区域坐标切割出...

  • Axure 实践3和5 花瓣登录界面

    1、基本操作 2、如何把一张图片切割并保存 操作:先用辅助线把要切割的地方画出来,然后切割,再通过发布---生成H...

  • Flutter 拼图小游戏

    效果图 主要实现功能 选取系统相册图片 切割图片 打乱图片 移动图片 选取系统相册 用的是flutter的imag...

网友评论

      本文标题:scala乱弹:切割图片

      本文链接:https://www.haomeiwen.com/subject/fcfngftx.html