67,513
社区成员
发帖
与我相关
我的任务
分享
public byte[] zoom(byte srcImageFile[], Double heightRatio,
Double widthRatio, boolean flag,String imageType)throws Exception {
byte byteStream[] ;
ByteArrayInputStream imgStream ;
if(imageType.equalsIgnoreCase("png")){
flag=true;
}
try {
ByteArrayInputStream imageInputStream = new ByteArrayInputStream(srcImageFile,0,srcImageFile.length);
BufferedImage bi = ImageIO.read(imageInputStream);
Image itemp = bi.getScaledInstance(bi.getWidth(), bi.getHeight(), bi.SCALE_SMOOTH);
AffineTransformOp op = new AffineTransformOp(AffineTransform
.getScaleInstance(widthRatio, heightRatio), null);
itemp = op.filter(bi, null);
int width =Integer.parseInt(new DecimalFormat("0").format(bi.getWidth() * widthRatio)) ;
int height = Integer.parseInt(new DecimalFormat("0").format(bi.getHeight() * heightRatio));
if (flag) {// 补白
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
if (width == itemp.getWidth(null))
g.drawImage(itemp, 0, (height - itemp.getHeight(null)) / 2,
itemp.getWidth(null), itemp.getHeight(null),
Color.white, null);
else
g.drawImage(itemp, (width - itemp.getWidth(null)) / 2, 0,
itemp.getWidth(null), itemp.getHeight(null),
Color.white, null);
g.dispose();
itemp = image;
}
BufferedImage bufImg = new BufferedImage(itemp.getWidth(null),
itemp.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics g = bufImg.createGraphics();
g.drawImage(itemp, 0, 0, null);
g.dispose();
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufImg, imageType, arrayOutputStream);
byteStream = arrayOutputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
throw e;
}
return byteStream;
}
public String uploadImage(byte imageFile[])throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
String imgAddr = null;
String imgServerAddr = Global.getConfig("imgServerAddr");
HttpPost httppost = new HttpPost(imgServerAddr);
InputStreamEntity reqEntity = new InputStreamEntity(new ByteArrayInputStream(imageFile,0,imageFile.length), -1, ContentType.APPLICATION_OCTET_STREAM);
reqEntity.setChunked(true);
httppost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String resStr = EntityUtils.toString(resEntity);
imgAddr =resStr.substring(24, resStr.length()-4);
}
EntityUtils.consume(response.getEntity());
response.close();
httpclient.close();
return imgAddr;
}