3

だから私はこれで小さなjrxmlを持っています:

画像

2 つの画像は、firebird データベースのフィールド タイプ BLOB であり、正しく表示するために、画像式で new ByteArrayInputStream((byte[])$F{FOFU}) を使用しています。

少し読んだ後、この画像を回転させる唯一の方法はJavaでプログラムで行うことであり、ここや他の場所でいくつかの投稿を読んだ後でも、その方法がわかりません。誰でもこれで私を助けることができますか?

4

1 に答える 1

4
private byte[] rotateImage(byte[] originalImageAsBytes , double radians) throws InternalException {
ByteArrayOutputStream rotatedImageStream = null;

try {
  BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(originalImageAsBytes)); // read the original image
  AffineTransform rotationTransform = new AffineTransform();
  rotationTransform.rotate(radians, originalImage.getWidth() / 2.0 , originalImage.getHeight() / 2.0);
  AffineTransformOp rotationTransformOp = 
    new AffineTransformOp(rotationTransform , AffineTransformOp.TYPE_NEAREST_NEIGHBOR); 
  BufferedImage rotatedImage = rotationTransformOp.filter(originalImage,null); 

  rotatedImageStream = new ByteArrayOutputStream();
  ImageIO.write(rotatedImage, "jpg" , rotatedImageStream); 
} catch (IOException e) {
  throw new InternalException(e);
}
return rotatedImageStream.toByteArray();
}

そして、私がやっているジャスパーで

new ByteArrayInputStream(path.to.rotateImage((byte[])$F{IMAGE}, 100.00))

イメージ表現として。その作業。

于 2013-11-05T16:57:59.920 に答える