React-Native Expo環境です。
ImagePickerで選択したフォトギャラリーの画像(写真)を、Canvasに表示出来無くて困っています。
App.jsと同階層に用意した画像なら表示出来ます。
以下抜粋です。なお、どうしてもCanvasを使用したいです。
import * as ImagePicker from 'expo-image-picker'; import Canvas, {Image as CanvasImage} from 'react-native-canvas'; selectImage = async () => { let response = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.All, allowsEditing: true, aspect: [4, 3] }) if (!response.cancelled) { const image = new CanvasImage(this.tempCanvas); this.tempCanvas.width = 100; this.tempCanvas.height = 100; const ctx = this.tempCanvas.getContext('2d'); //const asset = Expo.Asset.fromModule(require('./test1.jpg')); const asset = Expo.Asset.fromModule(response.uri.replace('file://', '')); image.src = asset.uri; image.addEventListener('load', () => { ctx.drawImage(image, 0, 0, 100, 100); }); } } render() { return ( <Canvas ref={ref => { this.tempCanvas = ref; }}/> ) }
「./test1.jpg」のコメント部分を外すとちゃんと表示されますが、ImagePickerのresponse.uriでは表示されない、という状況です。response.uriには画像までのパスがちゃんと入っています。もちろんいろんな試行錯誤(base64に変えたりfile://を付けたりなど)を行って、この形になっています。
一度、App.jsと同階層あたりにresponse.uri画像を書き出し、これを取り込まないとダメでしょうか?
どなたか分かる方がいらっしゃれば幸いです。
よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/20 23:45