HTML5 içerisinde File API mevcut. Bu File API içerisinde FileReader arayüzü var. Bu arayüz ile yapılabilen şeylerden biri de resmi upload etmeden önce önizlemesini görebilmek. Bildiğiniz gibi klasik yol ile resmi önce sunucuya göndermeniz gerekiyor ama bu API ile resmi yüklemeden tarayıcıda görebiliyorsunuz. Croppie de bunu kullanıyor.
Croppie'nin diğer yapabildiği ise resmi tarayıcı üzerinde kırpıp size base64 binary formatında kırpılan resmi verebilmesi. Bu veri genellikle data:image/jpeg;base64,/9j/4RiD... şeklinde başlar. Bazen HTML kodlarında <img src="data:image/jpeg;base64,/9j/4RiD..." alt=""> şeklinde görmüşsünüzdür. Resim bir dosya olarak değil de bir veri olarak ekleniyor.
intervention/image ise PHP işlerde kullanılan en yaygın resim kütüphanelerinden biri. Bu kütüphanenin bir özelliği ise base64 gibi veri formatlarından fiziksel resim dosyası oluşturabilmesi. Kabaca:
$data = "data:image/jpeg;base64,/9j/4RiD...";
$image = Image::make($data)->resize(200,200)->save('resim.jpg');
Yani demek istediğim sadece resmin kırpılmış halini sunucuya yüklemek istiyorsanız orjinal resmi sunucuya yüklemenize gerek yok. Croppie ile base64 formatındaki veriyi form ile POST edip intervention/image ile sunucuda Request ile alıp resmi oluşturabilirsiniz. İki iş yapmamış olursunuz.