2013-09-25 20 views
5

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:

Biz ( HTML5 Canvas drawImage ratio bug iOS)

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ış correctOrientationdeğ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.

+0

Bunu anladınız mı? Aynı problemle karşı karşıyayım, cordova 2.9 –

cevap

0

Görüntü yönlendirmesi EXIF ​​verilerinde depolanır. Here sorununun çözümünü bulabilirsiniz.

İlgili konular