Takip et

Flask ile WebP Görüntü Dönüştürücü Projesi

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

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.