ユーザーがカメラから写真をアップロードできるモバイル Web サイトを構築しています。
ユーザーのアルバムから画像を取得できます。また、ユーザーが iPhone4 および Android 4 の iOS6 で写真を撮ったときに画像を取得できますが、ユーザーが iPhone5 (同じく iOS6 を使用) で写真を撮ったときに何も取得しません。ユーザーのフォトアルバムから画像を取得できますが、写真を撮るときは取得できません。
ここにコードとjsfiddleがあります
$('input#file_api').change(function(evt){
var image = evt.target.files[0];
var reader = new FileReader();
reader.onerror = (function(){alert('error reading file')});
reader.onload = (function(theFile) {
return function(e) {
// Render thumbnail.
var tempImg = new Image();
tempImg.src = reader.result;
tempImg.onload = function(){
var canvas = document.createElement('canvas');
canvas.width=tempImg.width;
canvas.height=tempImg.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(tempImg,0,0);
$('body').append(canvas);
})(image);
reader.readAsDataURL(image);
ここに例がありますhttp://jsfiddle.net/8DJUy/4/
ファイル ピッカーを使用して写真を取得すると、その写真がページに追加されます。iPhone5で写真を撮った場合、何も追加されません。しかし同時に、エラーも発生しません。
これを回避する方法について何か提案はありますか?
写真を取得する際に何が問題なのか、よくわかりません。
このように写真を取得している理由は、携帯電話から直接アップロードするとファイル サイズが非常に大きくなるためです。ユース ケースでは高解像度の画像は必要ないため、アップロードする前にキャンバスを使用して画像のサイズを変更しています。 .