【问题标题】:Crop Image in Titanium in the Preview Screen在预览屏幕中使用 Titanium 裁剪图像
【发布时间】:2014-08-02 10:48:07
【问题描述】:

我正在创建一个使用相机/图库的应用程序。我正在使用相机拍照,拍照后,设备将自动在 iOS 中显示预览屏幕,允许我根据需要移动和缩放图像。在android中,我手动创建了一个预览窗口。

但我想裁剪分辨率为 610x320 像素的图像。

这是拍摄图像的代码

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]
});

只有在从预览屏幕中选择照片后,我才能使用imageFactory module 裁剪图像。是否有机会在预览屏幕本身执行相同操作,以便用户可以识别哪个区域正在被裁剪?

任何帮助将不胜感激。

【问题讨论】:

  • “预览”是什么意思?用户可以在其中编辑拍摄的照片吗?
  • 我的意思是当我们使用相机拍照时立即显示的屏幕
  • 那块屏幕是你的吗?是你自己做的还是iOS提供的?
  • iOS 提供。

标签: android ios camera titanium titanium-mobile


【解决方案1】:

您尝试过叠加吗?只需创建一个用户可以操作的可调整大小的视图(选择图像的一部分)并将其添加到CameraOptionsType

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

【讨论】:

  • 感谢您的回答。 AFAIK 在使用相机覆盖时,我需要手动处理相机功能,我想我不能使用默认相机按钮,我需要创建自己的预览屏幕。对吗?
  • 抱歉,我现在不能尝试。你试过了吗?如果是这样...如果没有按钮,请尝试showControls: true
  • 我可以使用叠加层来做同样的事情,并创建一个定制的相机。但是现在我在裁剪图像时遇到了一些问题。你能看看developer.appcelerator.com/question/175370/…
【解决方案2】:

我已经为 iOS 创建了自己的预览屏幕,并在 scrollView 和图像工厂模块的帮助下裁剪了图像。现在它工作完美。您可以找到示例代码here。但是,这不适用于 Android 设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2014-02-14
    相关资源
    最近更新 更多