Java 표준 라이브러리를 사용하여 Scala에서 이미지에 문자를 추가해보십시오.

8922 단어 Scala자바

개요



Scala에서 이미지에 문자를 추가하려고 할 때 가장 쉽게 구현할 수있는 방법이 Java의 표준 라이브러리를 사용하는 방법일까 생각합니다. 그래서 기본적으로 구현 내용은 Java와 거의 변하지 않습니다만, 참고로 한 사이트와 함께 샘플 코드를 소개합니다.

참고



조금 많지만 참고로 한 기사를 열거합니다.

  • Scala Documentation - Image processing : Scala의 이미지 읽기/출력 문서.

  • Java로 JPEG 파일을 읽고 그림과 문자를 쓰고 출력합니다. : 이미지에 문자를 추가하는 구현이 소개되었습니다.

  • 【Java】 화상 편집 ~ 화상을 세로·가로에 결합한다 ~ : 이미지에 이미지를 결합하는 구현이 소개되었습니다.

  • 【Java】창에 문자열을 그리기 : 폰트의 설정에 관한 구현이 소개되고 있습니다.

  • 배경 채우기 : 배경을 채우는 구현이 소개되었습니다.

  • 【Java】 안티 앨리어싱의 이용 : 문자의 앤티앨리어싱의 구현이 소개되고 있습니다.

  • Java에서 JPEG 이미지의 저장 품질 변경 : 이미지의 보존 품질을 설정하는 구현이 소개됩니다.

  • 샘플 코드



    원본 이미지 옆에 문자를 추가하여 출력하는 샘플 코드입니다. Scala라고 말하면서 거의 Java와 다르지 않다고 생각합니다.

    ImageWritingWordSample.scala
    import java.awt.{Color, Font, RenderingHints}
    import java.awt.image.BufferedImage
    import java.io.{File, FileOutputStream}
    
    import javax.imageio.{IIOImage, ImageIO, ImageWriteParam}
    
    object ImageWritingWordSample extends App {
      // 元画像の読み込み
      val originalImage = ImageIO.read(new File(s"resources/200x50.png"))
    
      // 新規画像に元画像を組み込み
      val newImage = new BufferedImage(320, 50, originalImage.getType)
      val graphics = newImage.createGraphics()
      graphics.drawImage(originalImage, 0, 0, null)
    
      // 文字を書くところの背景色
      graphics.setColor(Color.WHITE)
      graphics.fillRect(200, 0, 320, 50)
    
      // フォントの設定
      graphics.setFont(new Font("Arial", Font.PLAIN, 12))
      // 文字色
      graphics.setColor(Color.BLACK)
      // アンチエイリアス
      graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON)
      // 文字の追加
      graphics.drawString("テストテスト", 210,20)
      graphics.drawString("テストテスト", 210,40)
    
      // 画像出力
      val os = new FileOutputStream("resources/new_320x50.jpeg")
      val ios = ImageIO.createImageOutputStream(os)
      val writer = ImageIO.getImageWritersByFormatName("jpeg").next
      val param = writer.getDefaultWriteParam
      param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT)
      // 画像品質の設定
      param.setCompressionQuality(1.0f)
      writer.setOutput(ios)
      writer.write(null, new IIOImage(newImage, null, null), param)
      writer.dispose()
    }
    

    실행 결과



    【원화상】

    【문자를 추가한 후의 이미지】

    좋은 웹페이지 즐겨찾기