خرید بک لینک

Vote count: 0

I am doing the following transformation of an image (initially as a String in base64):

StringBuffer --> decode --> BufferedImage --> rotate --> encode --> StringBuffer

Even though the resulting image is rotated, the color has been transformed and I don't know which could be the reason. Any ideas?

This is the code:

 public static StringBuffer rotateImage(StringBuffer img) {
    BufferedImage bufferedImage = decodeImage(img);
    bufferedImage = rotate(bufferedImage);
    retu encodeImage(bufferedImage);
}

private static BufferedImage decodeImage(StringBuffer img) {
    byte[] decode = Base64.getDecoder().decode(String.valueOf(img).getBytes());
    InputStream input = new ByteArrayInputStream(decode);

    try {
        BufferedImage bufferedImage = ImageIO.read(input);
        retu bufferedImage;
    } catch (IOException exception) {
        logger.waing(exception.toString());
    }

    retu null;
}

private static BufferedImage rotate(BufferedImage img) {
    AffineTransform tx = new AffineTransform();
    tx.rotate(Math.PI, img.getWidth() / 2, img.getHeight() / 2);

    AffineTransformOp op = new AffineTransformOp(tx,
            AffineTransformOp.TYPE_BILINEAR);
    op.createCompatibleDestImage(img, null);
    img = op.filter(img, null);
    retu img;
}

private static StringBuffer encodeImage(BufferedImage img) {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try {
        ImageIO.write(img, "jpeg", Base64.getEncoder().wrap(os));
    } catch (IOException e) {
        e.printStackTrace();
    }
    retu new StringBuffer(os.toString());
}

asked 1 min ago

برچسب: نویسنده: استخدام کار تاريخ: يکشنبه 26 ارديبهشت 1395 ساعت: 13:23

صفحه بندی