Geliştirilmekte olan temel özellikler arasında bir kullanıcı profili bölümü de bulunan bir PhoneGap uygulaması geliştiriyoruz. Bu ekran/bölüm içinde kullanıcının profil görüntüsü de dahil olmak üzere çeşitli ayrıntıları güncellemesine izin veriyoruz. Profil görüntüsü kamerayla çekilebilir (mükemmel çalışır) veya kullanıcı fotoğraf arşivinden seçilebilir. Sorunumuz burada yatıyor.PhoneGap görüntü dönüşümü dönüşümünden sonra dönüş sorunu
navigator.camera.getPicture
işlevini kullanarak kullanıcılar kamerasından veya kamera rulosundan bir fotoğraf yüklüyoruz.
Daha sonra yeni bir Image()
oluşturun ve imageURI
görüntüyü telefon boşluğu tarafından döndürülen görüntü src
olarak ayarlayın. Resmin onload
işlevinde yeniden boyutlandırmak ve bir kareye kesmek için resmi bir tuval bağlamında çiziyoruz. Her şey alınca iyi çalışıyor:
Sorun görüntü ezilmiş fakat rendering biz bu yazı yardımıyla bu sorunu çözdüm görüntü ile ilgili bir sorun vardı görüntüyü doğrudan kameradan değil, destinationType
ayarını navigator.camera.PictureSourceType.SAVEDPHOTOALBUM
veya navigator.camera.PictureSourceType.PHOTOLIBRARY
olarak ayarladığımızda, görüntü yanlış bir şekilde döndürülüyor. True değerine ayarlanmış correctOrientation
değeri olarak ayarlanmıştır. Biz designationType CAMERA FILE_URI
ve PHOTOLIBRARY
için NATIVE_URI
olduğunda Biz sadece resim verilerini elde edebilirsiniz Cordova 2.8
kullandığınız
. Bu farkın bizim sorunumuzla bir ilgisi olabilir mi?
kodudur:
navigator.camera.getPicture(function (imageURI) {
context = // 2d context from canvas object in the DOM
base_image = new Image();
base_image.onload = function() {
var x = 0;
var y = 0;
var w = 144;
var h = 144;
... // some size and offset calculations
var ratio = ... // calculate a ratio based off this question https://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios
context.drawImage(base_image, x, y, base_image.width, base_image.height, 0, 0, w, h/ratio);
url = context.canvas.toDataURL().toString();
DOMImage.src = url
}
base_image.src = imageURI;
}, function (error) {
enyo.log("Error " + error);
}, {
quality : 49,
targetWidth: 114,
targetHeight: 114,
sourceType: sourceType,
encodingType: Camera.EncodingType.JPEG,
destinationType: destinationType,
correctOrientation: true,
saveToPhotoAlbum: false
});
Herhangi bir tavsiye çok takdir edilmektedir.
Bunu anladınız mı? Aynı problemle karşı karşıyayım, cordova 2.9 –