0

小さなプロジェクトを構築したい。

どうすればいいですか:

1) 既知のインターネット アドレスから amazon AWS に RGB イメージを自動的にダウンロードします。

2) 画像をグレースケールに変換します (最終的にはより高度な画像処理を行います)。

3) グレースケール画像を amazon AWS に保存します。

4) Web ブラウザーでグレースケール画像を表示/ダウンロードできること。

私が知っているプログラミング言語は、matlab と基本的な Java (OOP 大学コース) です。

ステップバイステップガイドはありますか?

どこから始めればいいですか?

4

1 に答える 1

0

Java を使用してファイルをダウンロードする方法については、java.net.HttpURLConnection のドキュメントを参照してください。

次に、Amazon S3 にダウンロードおよびアップロードする方法について説明しているhttp://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.htmlをお読みください。以下は、Java からの動作中の S3 の例です。

//---------------------------------------------------------------------     
// Amazon S3
//---------------------------------------------------------------------     
class S3 extends AmazonS3Client
 {final String bucket;
  S3(String u, String p, String Bucket)
   {super(new BasicAWSCredentials(u, p));
    bucket = Bucket;
   }
  boolean put(String k, String v)      
   {try 
     {final ByteArrayInputStream b = new ByteArrayInputStream(v.toString().getBytes());
      putObject(bucket, k, b, new ObjectMetadata());
      setObjectAcl(bucket, k, CannedAccessControlList.PublicRead);  // Has to be here to allow change to reduced redundancy
      changeObjectStorageClass(bucket, k, StorageClass.ReducedRedundancy);
      setObjectAcl(bucket, k, CannedAccessControlList.PublicRead);  // Has to be repeated because it is now a new object again
      return true; 
     }
    catch(Exception e) {log("Cannot put "+bucket+"/"+k+" to S3 because "+e);}
    return false; 
   }
  String get(String k) 
   {try 
     {final S3Object f = getObject(bucket, k);
      final BufferedInputStream i = new BufferedInputStream(f.getObjectContent());  
      final StringBuilder s = new StringBuilder(); 
      final byte[]b = new byte[1024];
      for(int n = i.read(b); n != -1; n = i.read(b)) {s.append(new String(b, 0, n));}
      return s.toString(); 
     }
    catch(Exception e) {log("Cannot get "+bucket+"/"+k+" from S3 because "+e);}
    return null; 
   }
  String[]list(String d) 
   {try 
     {final ObjectListing l = listObjects(bucket, d);
      final List<S3ObjectSummary> L = l.getObjectSummaries(); 
      final int n = L.size();
      final String[]s = new String[n];  
      for(int i = 0; i < n; ++i)
       {final S3ObjectSummary k = L.get(i);
        s[i] = k.getKey();
       } 
      return s; 
     }
    catch(Exception e) {log("Cannot list "+bucket+"/"+d+" on S3 because "+e);}
    return new String[]{}; 
   }
 }

}

Amazon S3 にイメージを取得したら、ファイルをパブリックに表示できるようにして、任意の Web ブラウザーで表示できるようにします。

于 2013-09-03T20:00:40.453 に答える