2013-04-01 2 views
0

Я читаю файл изображения в сервлет из http-запроса. Я хочу обрезать его как квадрат и записать его в файл. Я могу достичь этого с помощью следующего кода, но я использую временный файл, чтобы сначала записать исходное изображение. Как я могу сделать это без использования временного файлаОбрезать загруженное изображение с помощью Java

    File tempFile = new File(saveFileFrameTemp); 
        fileOut = new FileOutputStream(tempFile); 
        fileOut.write(dataBytes, startPos, (endPos - startPos)); 
        fileOut.flush(); 
        fileOut.close(); 

        BufferedImage fullFrame = ImageIO.read(tempFile); 
        int height = fullFrame.getHeight(); 
        int width = fullFrame.getWidth(); 
        if (height > width) 
         ImageIO.write(fullFrame.getSubimage(0, (height-width)/2, width, width), "jpg", new File(saveFileFrame)); 
        else 
         ImageIO.write(fullFrame.getSubimage((width-height)/2, 0, height, height), "jpg", new File(saveFileFrame)); 

        tempFile.delete(); 

ответ

0

Вы не можете обрезать BufferedImage без создания нового BufferedImage как побочного эффект

+0

Thats OK все, что я хочу не создать временный файл и дополнительные IO диска –

Смежные вопросы