2014-06-12 2 views
0

Je crée une application qui utilise un appareil photo/galerie. Je prends une photo en utilisant l'appareil photo et une fois que j'ai pris la photo, l'appareil affichera automatiquement un écran de prévisualisation dans iOS, me permettant de déplacer et d'agrandir mon image si nécessaire. Dans Android, j'ai créé manuellement une fenêtre d'aperçu. Mais je veux recadrer l'image avec une résolution de 610 x 320 pixels.Crop Image en titane dans l'écran de prévisualisation

Voici le code pour prendre l'image

Ti.Media.showCamera({ 
success:function(event) { 
    if(event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) { 
    var image = event.media; 
    var ImageFactory = require('ti.imagefactory'); 
    var newBlob = ImageFactory.imageAsCropped(image, {width:610, height:320 }); 
      imgvwCapturedImage.image = newBlob; //imgvwCapturedImage is an image view 
    } 
    }, 
cancel:function() {}, 
    error:function(error) { 
     alert("Sorry, Unable to to process now.Please retry later."); 
    }, 
saveToPhotoGallery:true, 
    allowEditing:true, 
    mediaTypes:[Ti.Media.MEDIA_TYPE_PHOTO] 
}); 

j'ai pu recadrer l'image en utilisant la imageFactory module seulement après avoir sélectionné la photo de l'écran d'aperçu. Y at-il une chance de faire la même à l'écran de prévisualisation lui-même de sorte que l'utilisateur peut identifier quelle zone est recadrée?

Toute aide sera appréciée.

+0

Que signifie "aperçu"? Est-ce votre interface où l'utilisateur peut modifier une photo prise? – 0101

+0

Je voulais dire à propos de l'écran qui s'affiche immédiatement lorsque nous prenons une photo avec l'appareil photo – Anand

+0

Mais cet écran est-il le vôtre? L'avez-vous fait ou est-il fourni par iOS? – 0101

Répondre

0

J'ai créé mon propre écran d'aperçu pour iOS et recadrée l'image à l'aide d'un module usine ScrollView et d'image. Maintenant, ça fonctionne parfaitement. Vous pouvez trouver un exemple de code here. Cependant, cela ne fonctionnera pas pour les appareils Android.

1

Avez-vous essayé une superposition? Créez simplement une vue redimensionnable que l'utilisateur peut manipuler avec (Sélectionnez une partie d'une image) et ajoutez-la à CameraOptionsType.

http://docs.appcelerator.com/titanium/latest/#!/api/CameraOptionsType-property-overlay

+0

Merci pour la réponse. AFAIK tout en utilisant une superposition avec l'appareil photo, j'ai besoin de gérer les fonctionnalités de la caméra manuellement, je suppose que je ne peux pas utiliser les boutons de caméra par défaut et j'ai besoin de créer mon propre écran d'aperçu. Droite? – Anand

+0

Désolé, mais je ne peux pas l'essayer maintenant. L'as tu essayé? Si oui ... et s'il n'y a pas de boutons, essayez 'showControls: true' – 0101

+0

J'ai été capable de faire la même chose en utilisant la superposition et en créant une caméra personnalisée. Mais maintenant je suis confronté à quelques problèmes dans le recadrage de l'image. Pourriez-vous jeter un oeil à http://developer.appcelerator.com/question/175370/move-scale-and-crop-an-image – Anand