Flask ile WebP Görüntü Dönüştürücü Projesi
Merhaba! Bu yazıda, Python’ın popüler web framework’ü Flask ile birlikte bir WebP görüntü dönüştürücü projesi oluşturacağız. WebP, modern bir görüntü formatıdır ve JPEG ve PNG’ye göre daha küçük dosya boyutları ve daha iyi sıkıştırma sunar. Bu nedenle, web performansını iyileştirmek için mükemmel bir çözümdür. Bu proje, hem öğrenme amaçlı hem de gerçek dünya uygulamaları için faydalı olacaktır.
Projenin Kurulumu
Öncelikle, projemize ihtiyacımız olan kütüphaneleri kuracağız. Bunun için terminal veya komut satırınızı açın ve aşağıdaki komutu çalıştırın:
pip install Flask Pillow
Pillow kütüphanesi, görüntü işleme işlemlerini kolaylaştırmak için kullanılacaktır. Flask ise, web uygulamamızın temelini oluşturacaktır. Kurulum işlemi tamamlandıktan sonra, aşağıdaki kodla basit bir Flask uygulaması oluşturabiliriz. Bu uygulama, bir JPG veya PNG görüntüsünü alıp WebP formatına dönüştürecektir.
Kod Örnekleri
İşte projemizin temel kod yapısı:
from flask import Flask, request, render_template
from PIL import Image
import io
import webp
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
if 'file' not in request.files:
return 'Dosya seçilmedi.'
file = request.files['file']
if file.filename == '':
return 'Dosya seçilmedi.'
if file:
try:
img = Image.open(file.stream)
img_bytes = io.BytesIO()
img.save(img_bytes, format='webp', quality=80)
return send_file(img_bytes, mimetype='image/webp', as_attachment=True, download_name='converted.webp')
except Exception as e:
return f"Hata: {e}"
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Bu kod, bir HTML formu kullanarak kullanıcıdan görüntü yüklemesini ister ve sonrasında Pillow kütüphanesi ile WebP formatına dönüştürür. Daha sonra dönüştürülmüş görüntüyü kullanıcıya indirir. Hata yönetimi için try-except bloğu kullanılmıştır.
Ayrıca, index.html dosyasına bir HTML formu eklememiz gerekir. Bu form, kullanıcıların dosya yüklemelerini sağlayacaktır. Bu form basit bir dosya yükleme alanı içerir.
Uygulamanın Çalıştırılması
Kodunuzu yazdıktan ve gerekli dosyaları oluşturduktan sonra, terminalinizden python app.py komutunu çalıştırın. Uygulama, varsayılan olarak 5000 numaralı port üzerinde çalışacaktır. Tarayıcınızda http://127.0.0.1:5000/ adresini ziyaret ederek uygulamayı test edebilirsiniz.
Geliştirme İpuçları
Bu basit örnek, geliştirmeye açık birçok nokta içerir. Örneğin, daha gelişmiş hata yönetimi, farklı dosya formatlarını destekleme, veya dosya boyut sınırlamaları ekleyebilirsiniz. Ayrıca, kullanıcı deneyimini geliştirmek için daha iyi bir kullanıcı arayüzü tasarlayabilirsiniz. Daha kapsamlı bir proje için, fatihsoysal.com sitesini ziyaret edebilirsiniz.
Bu proje, Flask ve görüntü işleme hakkında daha fazla bilgi edinmek için iyi bir başlangıç noktasıdır. Umarım bu makale faydalı olmuştur. Başka sorularınız varsa, lütfen bana ulaşmaktan çekinmeyin. Daha fazla bilgi için, Pillow dokümanlarını ve Flask dokümanlarını inceleyebilirsiniz.
#Etiketler: Flask, WebP, Görüntü Dönüştürücü, Python, Pillow, Web Geliştirme, Programlama, Kod Örneği, fatihsoysal.com