서버에서 Android로 이미지를 다운로드하고 이미지보기에 표시

Axxeption

서버가 있습니다 (GlassFish 사용). http를 사용하여 Json 또는 XML 등을 Android 장치에 보낼 수 있습니다. 내 안드로이드 장치에서 서버로 사진을 업로드하는 예제를 보았습니다. 선택한 이미지를 바이트로 변환하고 문자열로 변환 한 다음 서버에서 다시 변환합니다. 그래서 내 PC (서버)에 넣을 수 있습니다. 이제는 그 반대입니다. 내 PC에서 사진을 가져오고 URL을 사용하여 이미지 (여기에서 비트 맵)를 imageview로 가져옵니다. 그러나 디버깅으로 bmp는 "null"인 것 같습니다. Google은 내 이미지가 유효한 비트 맵이 아니기 때문에 말합니다 (서버 인코딩에 문제가 있습니까?). 이 코드를 작동하려면 무엇을 변경해야합니까?

서버 코드 :

public class getImage{
    String imageDataString = null;

    @GET
    @Path("imageid/{id}")
    public String findImageById(@PathParam("id") Integer id) {
        //todo: schrijf een query voor het juiste pad te krijgen!
        System.out.println("in findImageById");
        File file = new File("C:\\Users\\vulst\\Desktop\\MatchIDImages\\Results\\R\\Tensile_Hole_2177N.tif_r.bmp");

        try{
            // Reading a Image file from file system
            FileInputStream imageInFile = new FileInputStream(file);
            byte imageData[] = new byte[(int) file.length()];
            imageInFile.read(imageData);

            // Converting Image byte array into Base64 String
            imageDataString = Base64.encodeBase64URLSafeString(imageData);
            imageInFile.close();

            System.out.println("Image Successfully Manipulated!");
        } catch (FileNotFoundException e) {
            System.out.println("Image not found" + e);
        } catch (IOException ioe) {
            System.out.println("Exception while reading the Image " + ioe);
        }
        return imageDataString;

    }

}

그리고 이것은 안드로이드 측 (안드로이드 스튜디오)입니다.

public class XMLTask extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... urls) {
        HttpURLConnection connection = null;
        BufferedReader reader = null;
        try {
            java.net.URL url = new URL(urls[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            InputStream stream = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(stream));
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }

            return buffer.toString();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (connection != null) {
                connection.disconnect();
            }
            try {
                if (reader != null) {
                    reader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onPostExecute(String line) {
        super.onPostExecute(line);
        byte[] imageByteArray = Base64.decode(line , Base64.DEFAULT);

        try {
            Bitmap bmp = BitmapFactory.decodeByteArray(imageByteArray, 0, imageByteArray.length);
            ivFoto.setImageBitmap(bmp);
        }catch (Exception e){
            Log.d("tag" , e.toString());
        }
    }
}
멜기세덱

시도해 보셨습니까 HttpURlConnection?

다음은 샘플 코드입니다.

private class SendHttpRequestTask extends AsyncTask<String, Void, Bitmap> {
            @Override
            protected Bitmap doInBackground(String... params) {
                try {
                    URL url = new URL("http://xxx.xxx.xxx/image.jpg");
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setDoInput(true);
                    connection.connect();
                    InputStream input = connection.getInputStream();
                    Bitmap myBitmap = BitmapFactory.decodeStream(input);
                    return myBitmap;
                }catch (Exception e){
                    Log.d(TAG,e.getMessage());
                }
                return null;
            }

            @Override
            protected void onPostExecute(Bitmap result) {
                    ImageView imageView = (ImageView) findViewById(ID OF YOUR IMAGE VIEW);
                    imageView.setImageBitmap(result);
            }
    }

내가 도울 수 있기를 바랍니다

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이미지를 업로드하고보기에 표시 Laravel 5.2

분류에서Dev

가로 목록보기에서 이미지보기에 이미지를 표시하지 않습니다.

분류에서Dev

이미지보기 Android에서 .gif 이미지를 표시하는 방법

분류에서Dev

디스플레이 크기에 따라 다른 이미지를 표시하고 보이는 이미지 만 다운로드합니다.

분류에서Dev

다운로드하지 않고 새 탭에서 이미지 열기 (이미지 만 표시)

분류에서Dev

Express로 이미지를 다운로드하고 AJAX로 Vue에 표시

분류에서Dev

캔버스에 이미지를 서버에 업로드하기 전에 표시

분류에서Dev

skia 디코더-> 이미지를 다운로드하고 이미지보기에 표시 할 때 디코딩이 false를 반환했습니다.

분류에서Dev

안드로이드 스튜디오 이미지보기에서 이미지를 표시 할 수 없습니다

분류에서Dev

objective c-웹에서 이미지를 다운로드하여 이미지보기에 표시하는 데 사용하는 효율적인 방법

분류에서Dev

iOS에서 이미지를로드하기 전에 활동 표시기를 표시하고 싶습니다.

분류에서Dev

업로드 전에 미리보기 이미지 표시

분류에서Dev

백본보기 내에서보기를 표시하고 실제 이미지를 지연로드하기 전에 자리 표시 자 이미지가로드 될 때까지 기다립니다.

분류에서Dev

Android에서 서버의 이미지를 Glide로 표시하는 방법

분류에서Dev

Windows Phone 8에서 격자보기로 이미지 표시

분류에서Dev

기기에서 이미지가 검은 색으로 표시됨> Android 이미지보기

분류에서Dev

json URL에서 이미지를로드하고 Android의 gridview에 표시

분류에서Dev

openGL에서 심도 버퍼를 이미지로 표시

분류에서Dev

한 활동에서 다른 활동으로 이미지를 동적으로 전달하고 JSON을 통해 이미지보기에 표시하는 방법

분류에서Dev

cordova-plugin-file-transfer를 사용하여 이미지를 다운로드하고 Android 장치에서 이미지를 찾지 마십시오.

분류에서Dev

업로드하기 전에 이미지 미리보기 시도

분류에서Dev

Mysql DB에서 이미지를 읽고 Java로 DB로 다시 보내기

분류에서Dev

Android의 로컬 숨김 폴더에서 이미지 다운로드 및 표시

분류에서Dev

HTML에서 이미지를 다운로드하고 폴더 구조를 유지하십시오.

분류에서Dev

이미지의 숨기기 및 표시 버튼이 Android에서 무작위로 작동하지 않습니다.

분류에서Dev

PHP에서 다른 이미지로 이미지를 표시하는 방법

분류에서Dev

피카소를 사용하여 Android에서 가로 스크롤보기의 이미지를 슬라이드보기로 표시하는 방법

분류에서Dev

Listview의 다운로드 된 이미지 첫 번째 행은 Android를 올바르게 표시하기 전에 모든 이미지를 섞습니다.

분류에서Dev

PHP를 사용하여 서버에 업로드 한 후 0 바이트를 표시하는 이미지 크기

Related 관련 기사

  1. 1

    이미지를 업로드하고보기에 표시 Laravel 5.2

  2. 2

    가로 목록보기에서 이미지보기에 이미지를 표시하지 않습니다.

  3. 3

    이미지보기 Android에서 .gif 이미지를 표시하는 방법

  4. 4

    디스플레이 크기에 따라 다른 이미지를 표시하고 보이는 이미지 만 다운로드합니다.

  5. 5

    다운로드하지 않고 새 탭에서 이미지 열기 (이미지 만 표시)

  6. 6

    Express로 이미지를 다운로드하고 AJAX로 Vue에 표시

  7. 7

    캔버스에 이미지를 서버에 업로드하기 전에 표시

  8. 8

    skia 디코더-> 이미지를 다운로드하고 이미지보기에 표시 할 때 디코딩이 false를 반환했습니다.

  9. 9

    안드로이드 스튜디오 이미지보기에서 이미지를 표시 할 수 없습니다

  10. 10

    objective c-웹에서 이미지를 다운로드하여 이미지보기에 표시하는 데 사용하는 효율적인 방법

  11. 11

    iOS에서 이미지를로드하기 전에 활동 표시기를 표시하고 싶습니다.

  12. 12

    업로드 전에 미리보기 이미지 표시

  13. 13

    백본보기 내에서보기를 표시하고 실제 이미지를 지연로드하기 전에 자리 표시 자 이미지가로드 될 때까지 기다립니다.

  14. 14

    Android에서 서버의 이미지를 Glide로 표시하는 방법

  15. 15

    Windows Phone 8에서 격자보기로 이미지 표시

  16. 16

    기기에서 이미지가 검은 색으로 표시됨> Android 이미지보기

  17. 17

    json URL에서 이미지를로드하고 Android의 gridview에 표시

  18. 18

    openGL에서 심도 버퍼를 이미지로 표시

  19. 19

    한 활동에서 다른 활동으로 이미지를 동적으로 전달하고 JSON을 통해 이미지보기에 표시하는 방법

  20. 20

    cordova-plugin-file-transfer를 사용하여 이미지를 다운로드하고 Android 장치에서 이미지를 찾지 마십시오.

  21. 21

    업로드하기 전에 이미지 미리보기 시도

  22. 22

    Mysql DB에서 이미지를 읽고 Java로 DB로 다시 보내기

  23. 23

    Android의 로컬 숨김 폴더에서 이미지 다운로드 및 표시

  24. 24

    HTML에서 이미지를 다운로드하고 폴더 구조를 유지하십시오.

  25. 25

    이미지의 숨기기 및 표시 버튼이 Android에서 무작위로 작동하지 않습니다.

  26. 26

    PHP에서 다른 이미지로 이미지를 표시하는 방법

  27. 27

    피카소를 사용하여 Android에서 가로 스크롤보기의 이미지를 슬라이드보기로 표시하는 방법

  28. 28

    Listview의 다운로드 된 이미지 첫 번째 행은 Android를 올바르게 표시하기 전에 모든 이미지를 섞습니다.

  29. 29

    PHP를 사용하여 서버에 업로드 한 후 0 바이트를 표시하는 이미지 크기

뜨겁다태그

보관