Merhaba arkadaşlar
Flutter öğrenmeye çalışıyorum. Image picker ile eklediğim resmin yolunu hep yanlış buluyorum.
Emulater bana resmin yolunu şöyle gösteriyor :
/data/user/0/com.example.fotoyukle/cache/e50f0995-caaf-4391-864b-0d0b017a5eed/landscape-3127859_1920.jpg
Halbuki resmin yolu şöyle : storage/emulated/0/Download/
Kodlarım aşağıdaki gibidir :
Future getImage(ImageSource source) async{
final image = await ImagePicker().pickImage(source: source);
if(image == null) return;
final imageTemporary = io.File(image.path);
setState(() {
this._image = imageTemporary;
print(_image!.path);
});
}
Emulatörde resim yolunu bulamıyorum
3
●42
- 18-03-2023, 19:47:24Emulatorde gördüğünüz yol, gerçekte cihazınızda bulunan dosya yoluyla farklı olabilir. Bu nedenle, dosya yolunu doğru şekilde elde etmek için birkaç şeyi kontrol etmeniz gerekir.
Flutter'da Image Picker kullanıyorsanız, seçilen görüntü, önbellekte bir dosya olarak saklanır. Bu dosya, önbellek dosyalarının bulunduğu bir konuma kaydedilir. Bu konum, 'getTemporaryDirectory()' fonksiyonu tarafından döndürülen yol tarafından temsil edilir. Bu yolu kullanarak resmin yolunu bulabilirsiniz.
Aşağıdaki örnek kodda, getImage() fonksiyonunuzun içinde birkaç değişiklik yaparak resmin yolunu alabilirsiniz:
import 'package:path_provider/path_provider.dart'; // Path provider kütüphanesi ekleyin Future getImage(ImageSource source) async { final image = await ImagePicker().pickImage(source: source); if (image == null) return; final tempDir = await getTemporaryDirectory(); // Önbellek dizini yolunu alın final imageTemporary = io.File('${tempDir.path}/${DateTime.now().toString()}.jpg'); // Önbellek dizininde yeni bir dosya oluşturun ve adını resim dosyasının adıyla ayarlayın await imageTemporary.writeAsBytes(await image.readAsBytes()); // Görüntüyü bu dosyaya kaydedin setState(() { this._image = imageTemporary; print(_image!.path); }); }Bu kod, önbellek dizini içinde yeni bir dosya oluşturur ve seçilen resmi bu dosyaya kaydeder. Dosya yolunu da _image!.path kullanarak yazdırır.
Önbellek dosyaları genellikle uygulama kullanımı sırasında saklandıkları için, dosyanın otomatik olarak silinmesi için herhangi bir işlem yapmanıza gerek yoktur. Bununla birlikte, resmi kalıcı bir yere kaydetmek isterseniz, dosyayı farklı bir konuma taşıyabilirsiniz.
- 19-03-2023, 10:11:30
- 19-03-2023, 13:41:48İşinize yaramasına çok sevindim, keşke ChatGpt değil ben çözebilseydimHygge adlı üyeden alıntı: mesajı görüntüle