アップロードした写真を自動的に圧縮出来る方法があればご教授下さい。
知見のある皆様へ
昨日も投稿しましたが、誤解を与える質問かなと思いましたので再度投稿させて頂きます。
さて 現在 某顧客から申込受付システムの提案依頼・相談されております。
(業務ノウハウが弊社にあり、その点を評価されての提案依頼です)
顧客からは
・サービス申込には本人確認書(免許書・マイカード等)が必要になる。
よって 本人確認証明書を写した画像ファイルを申込受付サイトから
アップロードさせたい。
・本人確認書は多くの場合スマホで撮影される事を想定しているが、
昨今 スマホのカメラ機能がアップし画像ファイルの容量が大きく
なる傾向がある。
一方 システムを稼動させるサーバのHDDの容量を有効的に
つかいたい。
その為アップロードされた画像ファイルを圧縮してHDD保存しておきたい。
(圧縮ツール使い前日申込分を手動で圧縮させる等は嫌な模様です)
上記要望が出ております。
※個人的には画像ファイルを圧縮しても、劇的にファイル容量が小さくなる事はないと
思いますが。。。
要望を満たす為に、
1.申込WEB画面でファイルアップロード時に自動圧縮 サーバサイドの送信。
(申込WEB画面をHTML+Javascript Or HTML+PHP 等の組み合わせで開発?)
2.送付されてきた画像ファイルをサーバサイドで圧縮
(Javaを使って画像ファイルを圧縮するPGを作成。
作成したPGをタイムスケジュールとかに登録して自動稼動)
上記二通りが思いつきます。
1は実現は難しいのかなと推測しております。
2に関しては、ネットで圧縮PGとしてImageIOを使った参考例として下記を見つけました。
public static byte[] resize(final byte[] src, final double scale) throws IOException
{
try (ByteArrayInputStream is = new ByteArrayInputStream(src);
ByteArrayOutputStream os = new ByteArrayOutputStream()) {
BufferedImage srcImage = ImageIO.read(is);
BufferedImage destImage = resizeImage(srcImage, scale);
// 保存品質は「75」になる
ImageIO.write(destImage, "jpeg", os);
return os.toByteArray();
}
}
保存品質を指定できない方法との事でしたが、本人確認書の為ですから、
それほど問題にはならないと考えております。
【ご質問】
前書きが長くなりましたが、
・1について良い方法があればご教授下さい。
・2について良いPGがあればご教授下さい。
・1・2以外の方法があればご教授下さい。
以上宜しくお願いします。