2016-08-06 13 views
1

ギャラリーから画像のサイズを変更してアップロードします。アップロードに時間がかかる大規模な画像をユーザーが選択する可能性があるためです。 1024pxの幅に画像のサイズを変更し、幅に対して高さを再スケーリングしたいとします。私はimgのサイズを変更するための幅を指定するパラメータが見つからないopenGalleryメソッドを使用しました。私は間違っていないと思います。(カメラ用img)Capture.capturePhoto(Display.getInstance()。getDisplayWidth()/ 2、-1)はトリックを行います。どのようにギャラリーからのイメージのためにそれを達成することができますか?ありがとうはopenGalleryメソッドから画像をアップロードする前に画像のサイズを変更してください

Display.getInstance().openGallery(new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
    try { 
     if (evt == null) { 
      System.out.println("user cancelled"); 
      return; 
     } 
     eventImgpath = (String) evt.getSource(); 
     Image i = Image.createImage(eventImgpath); 
     eventImage.setIcon(i.scaledWidth(Display.getInstance().getDisplayWidth())); 
     eventImage.getParent().revalidate(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    } 
}, Display.GALLERY_IMAGE); 

//sending the img path to connectionRequest 
String eventImgPathFinal = eventImgpath; 
AddBusinessForumConnection abfc = new AddBusinessForumConnection(); 
abfc.addBusinessForumConnectionMethod(eventImgPathFinal); 

サイズを変更するIMG

public void addBusinessForumConnectionMethod(String eventImg) { 
    ConnectionRequest connectionRequest = new ConnectionRequest() { 

     @Override 
     protected void readResponse(InputStream input) throws IOException { 
     } 
     @Override 
     protected void postResponse() { 
     } 
    }; 
    AllUrl allUrl = new AllUrl(); 
    connectionRequest.setUrl(allUrl.addBusinessForumUrl); 
    connectionRequest.setPost(true); 
    connectionRequest.addArgument("imgUrl", new ImageBase64().getBase64(eventImg)); 
    NetworkManager.getInstance().addToQueueAndWait(connectionRequest); 
} 

答えて

1

使用ImageIOでのアップロード:

ByteArrayOutputStream out = = new ByteArrayOutputStream(); 

    ImageIO.getImageIO().save(path, out, ImageIO.FORMAT_JPEG, 
      maxWidth, -1, 1); 

    byte [] data = out.toByteArray(); 
関連する問題