Birleştirilmiş Bir Fotoğraf Arşivi Bozuk Dosyalar İçin Nasıl Kontrol Edilir?
Birleştirilmiş bir fotoğraf arşivini kontrol etmek için her görseli görüntü verilerini okuyan bir kod çözücüyle tarayın, hata veren veya uyarı tetikleyen dosyaların raporunu kaydedin, ardından herhangi bir şeyi değiştirmeden veya geri yüklemeden önce bu dosyaları tek tek inceleyin. Hızlı bir küçük resim veya dosya boyutu kontrolü belirgin sorunları bulabilir ancak görüntünün tamamının okunabilir olduğunu kanıtlayamaz. Bu iş akışı ImageMagick'in magick identify aracını kullanır ve yerel veya bağlı bir sürücüde depolanan arşivler için tasarlanmıştır.
Bozulma kontrolü size neyi söyleyebilir—ve neyi söyleyemez?
Bir dosya tanıdık bir uzantıya ve makul bir boyuta sahip olsa bile kesintiye uğramış veya hasarlı görüntü verileri içerebilir. Buna karşılık, bir görüntüleyicide açılan bir dosya başka bir kod çözücüde uyarı verebilir veya başarısız olabilir. Yapılan bir tarama, bir aracın dosyayı nasıl okuduğunu kaydeder; her bir pikselin görsel olarak doğru olduğunu veya her uygulamanın dosyayı aynı şekilde yorumlayacağını kanıtlamaz.
ImageMagick'in magick identify komutu görüntü özelliklerini raporlar ve eksik ya da bozuk dosyaları bildirebilir. Anlamlı bir kontrol için tam bir okuma talep etmek üzere +ping seçeneğini kullanın: ImageMagick, varsayılan ping modunun yalnızca temel tanımlama için gereken bilgileri okuduğunu ve tüm görüntüyü okumaktan kaçınabileceğini açıklamaktadır. Uyarıların komutun çıkış durumunu (exit status) etkilemesi için -regard-warnings parametresini ekleyin. ImageMagick Identify belgeleri, ImageMagick Temel Kullanım
Elde edilen sonucu bir ön eleme (triyaj) olarak değerlendirin. Bildirilen bir uyarı incelenmeyi hak eder; tek başına fotoğrafın kullanılamaz olduğunun kanıtı değildir. Sorunsuz bir tarama, bu kod çözücünün bir sorun bildirmeden işlemi tamamladığı anlamına gelir; görüntünün doğru göründüğü veya dosya biçimine özgü tüm ayrıntıların geçerli olduğu anlamına gelmez.
Taramadan önce arşivi hazırlayın
Kararlı bir kopya veya yedekle başlayın. Bir dosyanın tek kopyası üzerinde onarım veya dönüştürme işlemi çalıştırmayın: bazı kurtarma girişimleri verileri değiştirebilir, kesintiye uğrayan bir yazma işlemi ise sorunlu bir dosyayı daha da kötüleştirebilir. Birleştirilmiş arşiv birkaç sürücüye veya klasöre yayılıyorsa dahil etmeyi planladığınız her kök dizini not edin.
Koleksiyonu aktif olarak içe aktaran, düzenleyen veya senkronize eden yazılımları kapatın. Bu, bir dosyanın taranırken değişme olasılığını azaltır. Bağlı sürücülerin erişilebilir olduğunu ve tarama hesabının bunları okuyabildiğini doğrulayın. Bir izin hatası veya bağlantısı kesilmiş bir birim, sorunsuz bir sonuç olarak değil, taranmamış bir alan olarak değerlendirilmelidir.
İşletim sisteminiz için resmi dağıtımından ImageMagick'i yükleyin, ardından bir terminalde magick komutunun kullanılabilir olduğunu onaylayın. Önce bilinen birkaç görüntü üzerinde test edin. ImageMagick'in komut yazımı sürüm 7 içindir; daha eski yüklemeler farklı komut adları kullanabilir. Eksik komut veya desteklenmeyen biçim hatasını bir dosyanın bozuk olduğuna dair kanıt olarak yorumlamayın.
Tam bir tarama çalıştırın ve raporu kaydedin
macOS veya Linux'ta Bash, bir arşivi özyinelemeli (recursive) olarak tarayabilir ve hatalar ile uyarıları ayrı bir günlüğe yazabilir. /path/to/photo-library ve rapor yolunu gerçek konumlarınızla değiştirin. Taramada bir görüntü olarak değerlendirilmemesi için raporu taranan arşivin dışında tutun.
: > "$HOME/photo-scan-errors.log"
find "/path/to/photo-library" -type f -print0 |
while IFS= read -r -d '' file; do
if ! magick identify +ping -regard-warnings "$file" >/dev/null 2>>"$HOME/photo-scan-errors.log"; then
printf '%s\n' "$file"
fi
done
Terminal, kontrolü başarısız olan dosyaların yollarını yazdırır; günlük ise ImageMagick'in tanılama mesajlarını kaydeder. Döngü tüm dosyaları içerir, bu nedenle görüntü olmayan dosyalar da tanınmayan biçimler olarak bildirilebilir. Arşiv sepet (sidecar) dosyaları, belgeler veya görüntü dışı başka içerikler barındırıyorsa bu beklenen bir durumdur. Karışık bir arşiv için "bilinmeyen biçim" durumunu bir kod çözücü hatasından ayrı tutun ve gerekirse taramayı bilinen görüntü uzantılarıyla sınırlandırın. Uzantı filtrelemesi, adlarında olağan dışı uzantılar bulunan veya uzantısı olmayan görüntülerin gözden kaçmasına neden olabilir.
Günlük boşsa ve hiçbir yol yazdırılmadıysa, çalışma bu kod çözücünün kontrolü altında hiçbir tanılama ve hata üretmemiştir. Kök yolunun doğru olduğunu ve taramanın tamamlandığını doğrulayın; bir yazım hatası, erişilemeyen sürücü veya kesintiye uğrayan komut nedeniyle oluşan boş bir rapor, testten geçildiği anlamına gelmez. Çok büyük arşivler için tek seferde bir klasör veya sürücü çalıştırın ve nelerin tarandığını görebilmek için her raporu etiketleyin.
İşaretlenen her dosyayı güvenli bir şekilde inceleyin
Orijinali bulmak için yazdırılan yolu kullanın, ardından daha net bir tanılama elde etmek için kontrolü yalnızca o dosya üzerinde çalıştırın: magick identify +ping -regard-warnings "/full/path/to/file.jpg". Mesajı kaydedin ve ikinci bir görüntüleyici veya düzenleyicinin davranışıyla karşılaştırın. Dosyanın tamamen mi, kısmen mi yoksa hiç mi görüntülenmediğini kontrol edin. Bir uygulamanın, ana görüntü verisi hasar görmüş olsa bile gömülü bir önizlemeyi gösterebileceğini unutmayın.
Notlarınızda üç durumu birbirinden ayırın: kodu çözülemeyen bir dosya, uyarıyla kodu çözülen bir dosya ve kodu çözülen ancak beklenmedik şekilde eksik veya görsel olarak hasarlı görünen bir dosya. Bu, her uyarıya aynı şekilde yaklaşmaktan daha faydalı bir takip sağlar. GIF veya TIFF gibi çok kareli (multi-frame) biçimler tek bir dosyada birden fazla görüntü içerebilir; sorun yalnızca ilk kareden sonra ortaya çıkıyorsa ilgili kareleri veya sayfaları inceleyin.
Kaynağın üzerine yazmadan bir kurtarma yolu seçin
Başka bir kopya varsa onarıma kalkışmadan önce karşılaştırın. Bir dosya karması (hash), iki kopyanın tamamen aynı içeriğe sahip olup olmadığını söyleyebilir: Microsoft, eşleşen karmaların birebir aynı dosya içeriklerini tanımladığını, farklı adların veya uzantıların ise karmayı etkilemediğini belirtmektedir. Örneğin PowerShell'in Get-FileHash komutu varsayılan olarak SHA-256 kullanır. Microsoft Learn: Get-FileHash
Eşleşen karmalar, iki kopyanın bayt bazında aynı olduğunu gösterir; kopyalardan herhangi birinin sağlam olduğunu kanıtlamaz. İki kopya da aynı şekilde hata verirse başka bir yedek veya orijinal kaynak arayın. Biri başarılı olup diğeri başarısız olursa çalışan kopyayı koruyun ve hasarlı kopyayı yalnızca dosyaların amaçlanan aynı fotoğraf olduğunu onayladıktan sonra değiştirin. Değiştirilen dosya doğrulanana kadar işaretlenen orijinal dosyayı saklayın.
Sağlam bir kopya yoksa biçime özel bir kurtarma aracını denemeden önce işaretlenen dosyanın ayrı bir kopyasını oluşturun. Kurtarılan her çıktıyı baştan kontrol edin, bir görüntüleyicide açın ve boyutlarını veya beklenen diğer özelliklerini karşılaştırın. ExifTool, bir görüntü doğrulayıcı olarak tasarlanmadığını belirtir; -validate denetimleri temel olarak JPEG ve TIFF için ek kontroller sağlar, bu nedenle bunu evrensel bir geçer/kalır testi yerine tamamlayıcı bir tanılama olarak kullanın. ExifTool SSS: Can ExifTool be used as an image validator?
Kapsamı doğrulayın ve kullanışlı bir kayıt tutun
Denetimi tamamlanmış saymadan önce amaçlanan her klasörün dahil edildiğini, taramanın sonuna kadar ulaştığını ve raporun kaydedildiğini doğrulayın. Okunamayan sürücü, izin sorunu, desteklenmeyen biçim veya eksik kod çözücü belirten iletileri, doğrulanmış görüntü okuma hatalarından ayrı olarak inceleyin. Geri yüklenen dosyalarda kontrolü yeniden çalıştırın ve işaretlenen öğelere ile çok kareli dosyalara ekstra dikkat göstererek koleksiyonu bir görüntüleyicide örnekleme yöntemiyle kontrol edin.
Tarama tarihini, ImageMagick sürümünü, taranan klasörleri ve hata günlüğünü bakım notlarınızla birlikte saklayın. Bu kayıt, gelecekteki bir taramayı karşılaştırılabilir kılar ve eski bir uyarıyı yeni bir okuma sorunundan ayırmaya yardımcı olur. Dikkatli bir kontrol; tam bir kod çözücü okumasını, hedefe yönelik görsel incelemeyi ve yedek kopyanın doğrulanmasını bir araya getirir; hiçbir komut bu değerlendirmeleri sizin yerinize tek başına yapamaz.
