1. 程式人生 > >react-native-image-crop-picker學習

react-native-image-crop-picker學習

react-native-image-crop-picker是一款注重剪裁,相簿單選、多選的第三方框架。在我集成了react-native-image-picker的時候發現,他的剪裁不太友好。作者推薦了這個react-native-image-crop-picker。看到搜尋不到該中文的翻譯,故此文作為學習總結。

實際效果:

我用的是魅族pro6, 實現和github作者圖有點出入, 基本沒有自己處理介面:我覺得還是可以接受的。


照相機裁剪旋轉.jpg
相簿選擇.jpg

react-native-image-crop-picker 原文如下:

支援IOS/Android的相機,視訊壓縮,多個影象選擇和裁剪處理。

github效果


Paste_Image.png
Paste_Image.png

使用

匯入
import ImagePicker from 'react-native-image-crop-picker';
從相簿中選擇

呼叫單影象選擇器與裁剪

ImagePicker.openPicker({ width: 300, height: 400, cropping: true})
    .then(image => { console.log(image);});

呼叫多個影象選擇器

ImagePicker.openPicker({ multiple: true})
   .then(images
=>
{ console.log(images);});
從照相中選擇
  ImagePicker.openCamera({ width: 300, height: 400, cropping: true})
       .then(image => { console.log(image);});
選擇清理

模組建立臨時檔案影象將在未來的某個地方自動清理。 如果要強制清理,可以使用clean清理所有臨時檔案影象,或者使用cleanSingle(path)清除單個臨時檔案。

ImagePicker.clean().then(() => { 
     console.log('removed all tmp images from tmp directory'
);}) .catch(e => { alert(e);});
請求物件
引數 型別 描述
cropping bool (default false) 是否開啟裁剪
width number 與cropping=true一起使用的,裁剪後的寬度
height number 與cropping=true一起使用的,裁剪後的高度
multiple bool (default false) 啟用或禁用多個影象選擇
includeBase64 bool (default false) 啟用或禁用使用影象返回base64資料
cropperTintColor (android only string (default "#424242") 裁剪影象時,確定工具欄和其他UX元素的顏色。 使用UCrop的setToolbarColor,setActiveWidgetColor和setStatusBarColor顏色指定。
maxFiles (ios only) number (default 5) 最多能夠選取的檔案數,配合multiple=true
compressVideo (ios only) bool (default true) 選擇視訊時,壓縮它並將其轉換為mp4
smartAlbums (ios only) array (default ['UserLibrary', 'PhotoStream', 'Panoramas', 'Videos', 'Bursts']) (智慧相簿列表可供選擇)List of smart albums to choose from 【有點後續理解】
返回物件
引數 型別 描述
path string 選中檔案的位置
width number 選中檔案的寬度
height number 選中檔案的高度
mime string 選中圖片的MIME型別(image/jpeg, image/png)
size number 所選影象大小(以位元組為單位)
data base64 (已選擇的可選base64檔案體現)Optional base64 selected file representation

安裝

npm i react-native-image-crop-picker --save
react-native link react-native-image-crop-picker
安裝後步驟

iOS (IOS沒了解,暫時沒有去進行翻譯)

cocoapods users
    Add platform :ios, '8.0'to Podfile (!important)
    Add pod 'RSKImageCropper' and pod 'QBImagePickerController'to Podfile

non-cocoapods users
     Drag and drop the ios/ImageCropPickerSDK folder to your xcode project. (Make sure    
     Copy items if needed IS ticked)
     Click on project General tab
          Under Deployment Info set Deployment Target to 8.0
          Under Embedded Binaries click + and add RSKImageCropper.framework  and 
             QBImagePicker.framework

Android
    [可選]如果你想選擇相簿在你的專案中 在AndroidManifest.xml中 
         <uses-permission android:name="android.permission.CAMERA"/>
構建

iOS

  cocoapods users
      你已經完成。
  non-cocoapods users
      If you are using pre-built frameworks from ios/ImageCropPickerSDK
     , then before deploying app to production you should strip off simulator ARCHs from    
     these, or you can add frameworks    
     from Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/
     Products/_framework_name_.framework to Embedded Binaries instead of pre-built   
     ones. Related issue: [https://github.com/ivpusic/react-native-image-crop-
      picker/issues/61](https://github.com/ivpusic/react-native-image-crop-picker/issues/61)

    Details for second approach:
         1.Remove the pre-built frameworks from Embedded Binaries
         2.Build for Device
         3.Add the newly built binaries for both frameworks to Embedded Binaries
          (located at Libraries/imageCropPicker/Libraries/_framework_name_.xcodeproj/
         Products/_framework_name_.framework)

如何工作的

基本包含的庫。

Android :
     Native Image Picker
     uCrop
iOS: 
    QBImagePickerController
    RSKImageCropper