2014-11-24 25 views
14

Tôi hiện đang trong quá trình tạo ứng dụng dành cho thiết bị di động sử dụng Phonegap (Cordova) camera plugin. Nó nắm bắt chính xác hình ảnh và hiển thị nó ở nơi tôi muốn, nhưng tôi dường như không thể thiết lập các tùy chọn targetWidth và targetHeight, như được mô tả.Đặt máy ảnh chiều rộng và chiều cao camera phonegap

targetWidth: Chiều rộng tính bằng pixel để chia tỷ lệ hình ảnh. Phải được sử dụng với targetHeight. Tỷ lệ khung hình vẫn không thay đổi. (Số)

targetHeight: Chiều cao tính bằng pixel để chia tỷ lệ hình ảnh. Phải được sử dụng với targetWidth. Tỷ lệ khung hình vẫn không thay đổi. (Số)

Khi tôi hiểu, điều này sẽ thay đổi chiều rộng và chiều cao của hình ảnh trên đầu ra. Tuy nhiên, chúng dường như không hoạt động.

Đề xuất mà tôi tìm thấy khi nghiên cứu giải pháp, cho biết sử dụng thông số tùy chọn allowEdit. Trong này tôi có thể có được người dùng để chọn một hình ảnh bình phương đặt trước. Tuy nhiên, điều này dường như không hoạt động.

Xem mã của tôi bên dưới để tham khảo.

camera: function() { 
    //Fire up the camera! 
    navigator.camera.getPicture(onSuccess, onFail, { 
     destinationType: Camera.DestinationType.DATA_URL, 
     allowEdit: true, 
     targetWidth: 512, 
     targetHeight: 512 
    }); 
}, 

Cả hai đều không thành công theo ý tôi muốn; chiều rộng cố định và chiều cao cho hình ảnh được chụp.

Làm cách nào để đặt chiều rộng và chiều cao hình ảnh trên hình ảnh này?

Trả lời

0

tôi sử dụng sau đây và nó hoạt động tốt.

{ 
    quality: 25, 
    targetWidth: 500, 
    targetHeight: 500, 
    destinationType: Camera.DestinationType.FILE_URI, 
    sourceType: Camera.PictureSourceType.CAMERA, 
    correctOrientation: true 
} 

của nó cũng có thể sửa đổi các Plugin mã nguồn gốc theo nhu cầu riêng. Trong trường hợp bạn đang cố gắng trên Android. đây là bản sửa lỗi.

Bên thực hiện chức năng, cả hai tham số được thiết lập theo mặc định là không có nghĩa là một kích thước đầy đủ chụp từ máy, nếu không nếu một số giá trị được thông qua bởi args thông số sau đó những người được đưa vào tính toán.

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { 

      this.callbackContext = callbackContext; 

    if (action.equals("takePicture")) { 
       int srcType = CAMERA; 
       int destType = FILE_URI; 
       this.saveToPhotoAlbum = false; 
       this.targetHeight = 0; 
       this.targetWidth = 0; 
       this.encodingType = JPEG; 
       this.mediaType = PICTURE; 
       this.mQuality = 80; 

       this.mQuality = args.getInt(0); 
       destType = args.getInt(1); 
       srcType = args.getInt(2); 
       this.targetWidth = args.getInt(3); 
       this.targetHeight = args.getInt(4); 
       this.encodingType = args.getInt(5); 
       this.mediaType = args.getInt(6); 
       this.allowEdit = args.getBoolean(7); 
       this.correctOrientation = args.getBoolean(8); 
       this.saveToPhotoAlbum = args.getBoolean(9); 

see: https://github.com/apache/cordova-plugin-camera/blob/master/src/android/CameraLauncher.java#L115

Nếu có thể bạn có thể đặt nó là tốt trong mã nguồn gốc và hoạt động tốt.

3

Hãy thử một người bạn của tôi. xóa allowEdit : true

camera: function() { 
     navigator.camera.getPicture(onSuccess, onFail, { 
      quality: 50, 
      targetWidth: 512, 
      targetHeight: 512, 
      destinationType: navigator.camera.DestinationType. DATA_URL, 
      saveToPhotoAlbum: true, 
      correctOrientation: true 
     }); 
    } 
Các vấn đề liên quan