Image Meta Dataset

Proje Hakkında

Image Metadata Dataset, görüntü dosyalarının meta verilerini okuma, silme ve yönetme işlemlerini kolaylaştıran bir Python projesidir.

Bu proje, Pillow ve Piexif kütüphanelerini kullanarak görüntü dosyalarının EXIF verilerini işler.

Proje, kullanıcıların görüntü dosyalarının meta verilerini kolayca görüntülemesine ve düzenlemesine olanak tanır.

Github Dosyası: github.com/Mefamex/image-meta-dataset

Açılış tarihi: 30.01.2025 || Son güncelleme tarihi: 30.01.2025

1) Özellikler

  • Meta Veri Görüntüleme: Görüntü dosyalarının mevcut meta verilerini görüntüler.
  • Meta Veri Silme: Görüntü dosyalarından meta verileri siler ve yeni bir dosya olarak kaydeder.
  • Kullanıcı Dostu Arayüz: Kullanıcıların işlemleri kolayca gerçekleştirmesine olanak tanır.
  • Desteklenen Formatlar: JPEG, PNG gibi yaygın birçok görüntü formatlarını destekler.

2) UV Entegrasyonu

UV, Rust ile yazılmış, son derece hızlı bir Python paket ve proje yöneticisidir. Ziyaret et.

3) Kurulum

Projeyi kurmak için aşağıdaki adımları izleyin:

  1. Python Kurulumu: Projeyi çalıştırmak için Python 3.x gereklidir.

  2. Gerekli Kütüphanelerin Kurulumu: pip install pillow piexif

  3. Projeyi Klonlama:

    git clone https://github.com/Mefamex/image-meta-dataset.git 
    cd  image-meta-dataset

4) Kullanım

Projeyi kullanmak için aşağıdaki adımları izleyin:

  1. Meta Veri Görüntüleme:

    from metadata_manager import display_metadata
    display_metadata("path/to/your/image.jpg")

  2. Meta Veri Silme:

    from metadata_manager import delete_image_metadata
    delete_image_metadata("path/to/your/image.jpg", "path/to/output/image.jpg")

5) Örnek Kullanım

image_path  = "a.jpg" 
output_path = "aa.jpg" 
display_metadata(image_path) 
delete_image_metadata(image_path, output_path) 
display_metadata(output_path)

6) Kod

# -*- coding: utf-8 -*-
# Created on Friday, July 19 15:30:00 2024
# @author: mefamex

# project_name = "image-meta-dataset"
# project_version = "1.0.0"
# project_author = "Mefamex"
# project_date = "29.01.2025"
# project_description = "This is a project description"
# project_license = "MIT"
# project_repository = "https://github.com/Mefamex/image-meta-dataset"
# project_url = "https://mefamex.com/projects/image-meta-dataset"

# pip install piexif pillow 
from PIL import Image
import os, piexif, piexif.helper

print("----------------------------------------\n"+os.getcwd())
print(os.path.dirname(os.path.realpath(__file__)))
print(os.path.dirname(os.path.abspath(__file__)))
print(__file__)
print("Pillow Version:", Image.__version__, "\n----------------------------------------\n")

from PIL import Image
import os, piexif, piexif.helper 

def display_metadata(image_path):
    if not os.path.exists(image_path):
        print(f"Hata: {image_path} bulunamadı.")
        return
    
    image = Image.open(image_path)
    exif_bytes = image.info.get("exif")
    exif_data = piexif.load(exif_bytes) if exif_bytes else {"0th": {}, "Exif": {}, "GPS": {}, "Interop": {}, "1st": {}, "thumbnail": None}
    
    print("Mevcut Metadata:")
    for ifd in exif_data:
        if exif_data[ifd] is None or isinstance(exif_data[ifd], bytes):
            continue
        for tag, value in exif_data[ifd].items():
            try:
                if isinstance(value, bytes):
                    value = value.decode(errors='ignore')
                print(f"{piexif.TAGS[ifd][tag]['name']}: {value}")
            except KeyError:
                print(f"{tag}: {value}")
    print("............................................")


def delete_image_metadata(image_path, output_path):
    if not os.path.exists(image_path):
        print(f"Hata: {image_path} bulunamadı.")
        return
    image = Image.open(image_path)
    exif_bytes = image.info.get("exif")
    exif_data = piexif.load(exif_bytes) if exif_bytes else {"0th": {}, "Exif": {}, "GPS": {}, "Interop": {}, "1st": {}, "thumbnail": None}
    exif_bytes = piexif.dump(exif_data)
    image.save(output_path, exif=exif_bytes)
    print(f"{image_path} dosyasındaki metadata başarıyla silindi ve {output_path} dosyasına kaydedildi.")
    print("............................................")


# Örnek Kullanım
image_path = "a.jpg"
output_path = "aa.jpg"
display_metadata(image_path)
delete_image_metadata(image_path, output_path)
display_metadata(output_path)