0

自分では解決できない問題に直面しています。

Android アプリで画像をキャプチャし、その画像を FTP サーバーにアップロードする必要があります。もちろん、FTPに送信する前にサイズを変更する必要があります.2MBは絶対に受け入れられないサイズです:)

写真を撮り、パスを取得し、フル サイズでアップロードすることに成功しました。

これは、サーバーにアップロードする方法です。

File file = new File(pathOfTheImage);
String testName =System.currentTimeMillis()+file.getName();
fis = new FileInputStream(file);
// Upload file to the ftp server
result = client.storeFile(testName, fis);

この時点で、サイズを縮小するために画像のサイズを変更または圧縮し、その後サーバーにアップロードすることは可能ですか?

どんな助けでも大歓迎です。

PS私の下手な英語でごめんなさい!

編集:

Alamri のおかげで解決しました。もう一度、男、ありがとう!!!

4

1 に答える 1

0

私のアプリケーションでは、画像をアップロードする前にこれを使用しました:
1-ビットマップのサイズ変更、スケーリング、デコード

private Bitmap decodeFile(File f) {
    try {

        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f),null,o);

        final int REQUIRED_SIZE=450;

        int scale=1;
        while(o.outWidth/scale/2>=REQUIRED_SIZE && o.outHeight/scale/2>=REQUIRED_SIZE)
            scale*=2;

        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize=scale;
        Bitmap bit1 = BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
        return bit1;
    } catch (FileNotFoundException e) {}
    return null;
}

2- サイズ変更されたビットマップを保存しましょう:

private void ImageResizer(Bitmap bitmap) {
    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/Pic");    
    if(!myDir.exists()) myDir.mkdirs();
    String fname = "resized.im";
    File file = new File (myDir, fname);
    if (file.exists()){
        file.delete();
        SaveResized(file, bitmap);
    } else {
        SaveResized(file, bitmap);
    }
}

private void SaveResized(File file, Bitmap bitmap) {
    try {
           FileOutputStream out = new FileOutputStream(file);
           bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
           out.flush();
           out.close();
    } catch (Exception e) {
           e.printStackTrace();
    }
}

サイズ変更され、スケーリングされた画像を保存した後。コードを使用してアップロードします。

String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root + "/Pic/resized.im");
    String testName =System.currentTimeMillis()+file.getName();
    fis = new FileInputStream(file);
    // Upload file to the ftp server
    result = client.storeFile(testName, fis);
于 2013-07-15T01:48:08.893 に答える