Ionic ile ilgili bir çok yazı hazırlayıp tamamlayamadan yeni bir yazıya giriş vakti.
Bu ionic yazısı ionic ile camera fonksiyonunu nasıl kullanacağımız ile ilgili olacak.

Öncelikli olarak cmd üzerinden yada kullandığınız işletim sisteminin terminali üzerinden proje dizinimize giriş yapıyoruz.

Cmd kod satırına öncelikle aşağıdaki kodu yazıyoruz ve mevcut plugin listemize bakıyoruz.

cordova plugin list

Eğer plugin listemizde camera yoksa camera eklemesini yapıyoruz

cordova plugin add cordova-plugin-camera

Bu kodla cordova tarafından cameramızı uygulamamıza dahil etmiş olduk, kamera kullanımı için ekstra bir izin ayarı yapmamıza gerek yok.
Kamera ile birlikte cordova tarafından uygulamamıza birde combat plugini gelmiş olacak.

Tekrar cordova plugin list komutuyla camera pluginin yüklenip yüklenmediğini kontrol edebiliriz.

Şimdi ise ilk olarak kamera için bir servis oluşturmamız gerekiyor bunun için service.js dosyamızı açıyoruz.

.factory('Camera', function ($q) {

    return {
        getPicture: function (options) {
            var q = $q.defer();

            navigator.camera.getPicture(function (result) {
                q.resolve(result);
            }, function (err) {
                q.reject(err);
            }, options);

            return q.promise;
        }
    }

})

Service.js içerisinde camera isimli bir servis oluşturduk. Burada getpicture fonksiyonu ile kamera erişimimizi sağladık.

Şimdi ise controller.js dosyamıza giriş yapıyoruz. Controller.js içerisinde galeriden resim yükleme ve kamera ile çektiğimiz resimlere tanımlamalar gerçekleştireceğiz.

 .controller('cameraCtrl', function ($scope,Camera) {


      $scope.takePicture = function (options) {

          var options = {
              quality: 100,
              targetWidth: 500,
              targetHeight: 500,
              sourceType: 1
          };

          Camera.getPicture(options).then(function (imageData) {
              $scope.picture = imageData;;
          }, function (err) {
              console.log(err);
          });

      };

 
      $scope.getPicture = function (options) {
	
          var options = {
              quality : 100,
              targetWidth: 500,
              targetHeight: 500,
              sourceType: 0
          };

          Camera.getPicture(options).then(function(imageData) {
              $scope.picture = imageData;;
          }, function(err) {
              console.log(err);
          });
      };  
      
 })

Takepicture fonksiyonu ile kameramızı çalıştırıp, getpicture fonksiyonu ile ise galeriden fotoğraflara erişimi sağladık.

Quality değerini 1’den 100’e belirleyebilirsiniz, görsel kalitesi ile ilgili bir durumdur.
TargetWidth: Görsel genişliği,
TargetHeight: Görsel yükseklik değeğeridir.
Sourcetype: Kaynak türünüz, 1 – kamera, 0 ise galeri için tanımlanmakta.
Ön kamera yada arka kamera kullanmak isterseniz ön tanımlı olarak cameraDirection özelliğini kullanabilirsiniz.

cameraDirection: 0 // arka kamera,
cameraDirection: 1 // ön kamera erişimi içindir.

saveToPhotoAlbum ile görselin kayıt edilme/edilmeme durumunu kontrol edebilirsiniz: 0-1 / true-false değerlerini almaktadır.
correctOrientation ile ise Orientation özelliğini kontrol edebilirsiniz, 0-1 / true-false değerlerini almakta.
allowEdit görsel üzerinde düzenlemeye olanak sağlayan kodumuzda boolean veritipinde olduğu için 0-1 / true – false değerleri almakta.

Geolocation kullanıyorsanız java tarafında hata alabilirsiniz bu durumda geolocation’i kaldırıp kamerayı kurmalı ve sonra tekrar geolocation plugini cordova üzerinden projeye dahil etmelisiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir