← Bloga dön

ImgZilla 1.3 resmi olarak yayınlandı: Bir 'yerinde sıkıştırma' aracı, neden bu kadar uzun sürdü?

Bugün ImgZilla 1.3, Mac App Store'da resmi olarak yayınlandı. Temel işlevi çok net: Mac'inizdeki görselleri yerinde küçültmek — dosya adı, yol ve format değişmeden kalır; orijinaller varsayılan olarak Çöp Kutusu'na gider ve istediğiniz zaman geri yüklenebilir. Tüm bu işlemler kendi Mac'inizde gerçekleşir…

Paylaş

Bugün ImgZilla 1.3, Mac App Store'da resmi olarak yayınlandı.

Temel işlevi çok net: Mac'inizdeki görselleri yerinde küçültmek — dosya adı, yol ve format değişmez; orijinaller varsayılan olarak Çöp Kutusu'na gider ve istediğiniz zaman geri yüklenebilir.

Tüm bu işlemler kendi Mac'inizde gerçekleşir, internet bağlantısı gerektirmez; görseller bilgisayarınızdan ayrılmaz ve hiçbir sunucuya yüklenmez — gizlilik ve veri güvenliği en baştan temel tasarım ilkesidir.

Bu özellik basit görünebilir, ancak defalarca test ettik, yeniden yapılandırdık ve baştan tasarladık. Bu yazıda anlatmak istediğimiz, 'hangi özellikleri yaptığımız' değil, gerçek kullanım senaryolarında karşılaştığımız somut sorunlar ve sonunda ortaya çıkan çözümler.


'Yerinde üzerine yazma' söz konusu olduğunda en ufak bir dikkatsizlik kabul edilemez

Çoğu görsel sıkıştırma aracı sonucu photo-min.jpg olarak kaydeder — güvenlidir, ancak sorunu size bırakır: dosya adı değişir, ürün tablosundaki referanslar, web şablonlarındaki yollar, arşiv dizinlerindeki sıralama hepsi değişmek zorunda kalır.

ImgZilla farklı bir yol seçti: sıkıştırma sonucu doğrudan orijinal yola, orijinal dosya adına ve orijinal formata yazılır. JPG sıkıştırıldıktan sonra yine JPG'dir; referansları tek satır bile değiştirmeniz gerekmez.

Bedeli şudur: bu araç kullanıcının orijinal dosyalarına dokunur. Herhangi bir adımda hata olursa, kaybolan önbellek değil, birinin bütün gün çektiği fotoğraflar veya yıllarca biriktirdiği koleksiyonlardır.

Bu nedenle ürünün asıl zaman harcadığı yer hiçbir zaman sıkıştırmanın kendisi olmadı — sıkıştırma olgun kodlayıcılara bırakılabilir — asıl zaman 'ya olursa' senaryolarına karşı oluşturulan koruma katmanına harcandı. Aşağıdaki iyileştirmelerin tümü testler sırasında gerçekten karşılaştığımız durumlardır.


Testler sırasında değiştirilen birkaç şey

1. Orijinal koruma stratejisi bir kez baştan yapıldı

İlk tasarım, orijinalleri özel bir yedekleme dizinine kopyalamaktı. Mantık doğruydu, ama kullanımı garipti: yedek dizin sessizce büyüyor, kullanıcı aylarca sıkıştırma yaptıktan sonra diskte tam bir kopya oluştuğunu fark ediyordu; oysa başlangıçta yapmak istediği şey tam olarak yerden tasarruf etmekti.

Şimdiki yaklaşım Çöp Kutusu'nu önceliklendirmek: sıkıştırma başarılı olduğunda orijinal önce sistem Çöp Kutusu'na taşınır, ardından sıkıştırılmış sonuç orijinal yola yazılır.

Geri yükleme yöntemi her Mac kullanıcısının zaten bildiği bir işleme dönüştü: Çöp Kutusu'nu açıp sağ tıklayıp 'Yerine Koy' demek. Yeni bir kavram öğrenmeniz gerekmez ve giderek büyüyen gizli bir dizin oluşmaz. Bu seçenek ayarlarda varsayılan olarak açıktır; kapatıldığında doğrudan üzerine yazılır ve geri alınamaz, bu yüzden kapatırken ikinci bir onay penceresi çıkar.

2. Harici diskteki o pencere, testler sayesinde eklendi

Taşınabilir diskler, NAS ve ağ birimlerinde test ederken macOS'ta yaygın bir sorunla karşılaştık: bu konumlarda dosyalar çoğu zaman Çöp Kutusu'na taşınamıyor.

İlk sürümde bu durumda hata verip atlıyorduk — sonuç olarak kullanıcı koca bir klasörü sürükleyip bırakıyor ve hiçbir şey olmuyordu.

Şimdiki davranış: sıkıştırma duraklatılır ve bir pencere açılarak karar vermenizi ister:

  • Bir yedekleme dizini seçin: orijinal oraya kopyalanır, ardından orijinalin üzerine yazılır;
  • Yedeklemeyi bırak: ikinci bir onaydan sonra doğrudan üzerine yazılır, kopya tutulmaz;
  • Pencereyi kapat: iptal olarak kabul edilir ve tüm görev sonlandırılır.

Testler sırasında eklenen bir ayrıntı daha var: seçiminiz bu oturumdaki kalan tüm dosyalara uygulanır, aksi takdirde 500 görsel için art arda 500 pencere açılırdı — ilk sürüm tam olarak böyleydi, bir kez kullanınca dayanılmaz olduğunu gördük.

Seçilen yedekleme dizini varsayılan yedekleme konumu olarak kaydedilir (~/Library/Application Support/ImgZilla Backups/ altında zamana göre alt dizinler oluşturulur) ve sonraki benzer durumlarda öncelikli olarak kullanılır.

3. 'Zaten en küçük': Hiçbir şey yapmamayı tercih et

Bazı görseller daha içeri sürüklenmeden önce zaten sıkıştırılmış olabilir (ister başka bir araçla ister daha önce ImgZilla ile). Yeniden sıkıştırmak genellikle yalnızca yüzde onda birkaç boyut değişikliği sağlar. Bunun için kesin bir kural belirledik: sıkıştırma oranı %0,4'ün altındaysa dokunma; listede 'Zaten en küçük' olarak işaretlenir, orijinal dosya olduğu gibi kalır ve ücretsiz kota tüketilmez.

Bu kural istatistiklerin daha az etkileyici görünmesine neden olur — zaten sıkıştırılmış bir albümün tamamını sürüklediğinizde çoğu 'Zaten en küçük' olarak görünebilir. Ancak bizce, sırf başarı göstermek için görsellerinizi yeniden sıkıştıran bir araç, orijinal dosyalarınızın üzerinde çalışmayı hak etmez.

4. Dosya uzantısı yanıltıyorsa

Test örneklerinde 'uzantısı .png yazan ama aslında JPEG olan' pek çok dosyayla karşılaştık — çeşitli kaynaklardan dolaşan bu tür görseller tahmin ettiğimizden çok daha yaygın.

Artık ImgZilla, gerçek formatı belirlemek için dosya başlığındaki sihirli baytları okur ve kodlayıcıyı gerçek formata göre seçer. Uzantı yanlış yazılmış olsa bile doğru şekilde işlenir.

5. Seri işleme, paralel değil

Görselleri tek tek sırayla sıkıştırmak 'yeterince hızlı değil' gibi görünebilir. Paralel işlemeyi denedik, hız gerçekten arttı, ancak büyük toplu işlerde hata durumunu izlemek zorlaştı — üstelik bu araç kullanıcının orijinal dosyalarının üzerine yazıyor.

Kararlılık, en yüksek hızdan önce gelir; sonuç olarak seri işleme korundu. Şunu da belirtelim: seri, görevlerin tek tek işlenmesi anlamına gelir; her görselin sıkıştırma süreci ise kodlayıcı tarafından çoklu iş parçacığı kullanılarak gerçekleştirilir, böylece CPU'nun çok çekirdekli gücü boşa gitmez. Arayüzde bunu telafi etmek için şunları yaptık: o an işlenen öğe otomatik olarak görünür alana kayar, fare üzerine gelince otomatik kaydırma duraklar, altta işlenen görsel sayısı ve kazanılan alan gerçek zamanlı gösterilir, tüm işlem bitince sistem bildirimi gönderilir.

6. Ücretsiz kota dolduğunda görev 'duraklatılır', 'iptal edilmez'

Ücretsiz sürümde günde 10 görsel sıkıştırılabilir ve kota gün aşımında otomatik sıfırlanır. Testler sırasında fark ettik ki nerede kesintiye uğradığınız deneyimi tamamen değiştiriyor: 200 görsel sürükleyip 10. görselde doğrudan hata alıp çıkmak, kullanıcının tüm dosyaları yeniden eklemesini gerektirir — bu durumda bildirim salt bir tacize dönüşür.

Şimdiki davranış: kota dolduğunda görev olduğu yerde duraklatılır, satın alma paneli açılır; satın alma tamamlandıktan sonra kaldığı yerden kalan görselleri sıkıştırmaya devam eder, hiçbir dosyayı yeniden eklemeniz gerekmez. Ayrıca kota yalnızca sıkıştırma başarılı olduğunda düşer — sıkıştırma başarısızsa veya 'Zaten en küçük' ise sayılmaz.

7. 19 dil seçeneği ve pek göze çarpmayan bir kapanış

Arayüz 19 dil seçeneğini tam olarak destekler ('Sistemi takip et', Basitleştirilmiş ve Geleneksel Çince, English, 日本語, 한국어 ve başlıca Avrupa dilleri, العربية, Tiếng Việt vb. dahil) ve ayarlardan istediğiniz zaman değiştirilebilir; değişiklik anında uygulanır, yeniden başlatma gerekmez.

Bu kısım beklenenden çok daha fazla iş yükü getirdi ve yayın tarihinin ertelenmesinin nedenlerinden biri oldu. Ancak küresel App Store'da yer alan bir araç için kullanıcıların kendi ana dilini görmesi en temel saygıdır.


Görüntü kalitesi hakkında: Lütfen bize güvenmeyin, kendiniz bakın

Sıkıştırmada kurulması en zor şey güvendir. Bu yüzden açık konuşalım:

  • PNG (oxipng) ve SVG (svgcleaner) gerçek kayıpsız sıkıştırmadır, pikseller değişmez;
  • JPEG, WebP, AVIF, HEIC/HEIF ve GIF prensipte kayıplı yeniden kodlamadır, ancak parametreler görsel olarak kayıpsız aralığında seçilmiştir — çıplak gözle neredeyse ayırt edilemez, ancak bu 'kayıpsız' değildir; bu iki terimi birbirine karıştırmayız.

Ayrıca, bu sözü yalnızca güvene dayanarak kabul etmek zorunda değilsiniz. ImgZilla'nın yerleşik bir görsel karşılaştırma penceresi vardır (⌘D): solda sıkıştırma öncesi, sağda sıkıştırma sonrası; ortadaki ayırıcıyı sürükleyerek yan yana karşılaştırabilir, gerçek boyuta yakınlaştırıp ayrıntıları dikkatle inceleyebilirsiniz. Listede başarıyla sıkıştırılmış her görsel için tek tıkla karşılaştırma açılır.

Memnun kalmazsanız, Çöp Kutusu'ndan orijinali yerine geri koyun. Bu geri dönüş yolu her zaman açıktır.

Parametreler sabittir, arayüzde kalite kaydırıcısı yoktur. Bu bilinçli bir tercihtir: parametre ayarlamak kuantalama tablosu, kodlama method'u, speed gibi teknik kavramları anlamayı gerektirir; yanlış ayar ya boşuna sıkıştırmaya ya da bulanık sonuçlara yol açar. Bu işi sizin yerinize biz yaptık — her formatın parametreleri ayrı ayrı ayarlandı; sürükleyip sıkıştır'a tıkladığınızda o format için mevcut parametreler altında en ideal denge noktasını elde edersiniz.

Kendi sıkıştırma parametrelerinizi kendiniz ayarlamaya alışkınsanız bile, yine de ImgZilla'yı denemenizi öneririz — parametreler zaten ayarlanmıştır ve belki de tekrarlanan deneme yanılma zahmetinden sizi kurtarır.


Neleri yapmaz

Aynı derecede önemli sınırlar, indirdikten sonra fark etmemeniz için burada yazılı:

  • Yalnızca macOS (12.3 ve üzeri). Windows sürümü yok, iOS sürümü yok, web sürümü yok.
  • Format dönüştürmez. JPG sıkıştırıldıktan sonra yine JPG kalır, WebP'ye dönüşmez.
  • Boyutu değiştirmez. Çözünürlüğü düşürmez, kırpma yapmaz.
  • Her zaman küçülteceğini garanti etmez. Zaten optimize edilmiş görseller büyük olasılıkla hiç küçülmez; dürüstçe 'Zaten en küçük' olarak işaretlenir.
  • EXIF varsayılan olarak kaldırılır (GPS konumu dahil; dosya daha küçük olur ve gizliliği korur). Çekim parametrelerini, telif hakkını ve renk profilini korumak istiyorsanız ayarlardan 'EXIF bilgilerini koru' seçeneğini elle açın.

Ayrıca özellikle vurgulanması gereken bir nokta daha var: tüm sıkıştırma işlemleri Mac'inizde yerel olarak gerçekleşir. App Store satın alma doğrulaması dışında ImgZilla internet bağlantısı gerektirmez; görseller bilgisayarınızdan ayrılmaz — kuyruk yok, görsel sayısı sınırı yok ve 'başkasının sunucusuna yükleme' diye bir şey yok. Kodlayıcıların tümü uygulama içine paketlenmiş yerel statik kütüphanelerdir.


Artık kullanmaya başlayabilirsiniz

  • Ücretsiz sürüm: günde 10 görsel, gün aşımında otomatik sıfırlanır, özellikler kısıtlanmaz.
  • Sınırlamayı kaldır: kalıcı sürüm (tek seferlik satın alma, sınırsız sayıda) veya aylık abonelik; fiyat bulunduğunuz App Store bölgesine göre gösterilir. Bilgisayar değiştirdiğinizde veya yeniden kurulumda 'Satın Almayı Geri Yükle' seçeneğine tıklamanız yeterlidir.

Önerilen ilk kullanım şekli: önce çok da önemsemediğiniz bir görseli sürükleyip bırakın, sıkıştırdıktan sonra 'Karşılaştır'a tıklayın, kaliteye kendiniz bakın ve ardından tüm klasörü ona emanet edip etmeyeceğinize karar verin.

Bu aracın kullanılmasını istediğimiz yol da budur: önce doğrulayın, sonra güvenin.

Herhangi bir sorunuz veya öneriniz varsa menüdeki 'Yardım → Geri Bildirim' yoluyla bize iletmekten çekinmeyin. 1.3 güvenle kullanılabilecek bir sürümdür, ancak kesinlikle son sürüm olmayacak.


ImgZilla 1.3 artık Mac App Store'da mevcut. macOS 12.3 veya daha yeni bir sürüm gerektirir.

Daha küçük, daha hızlı görseller mi?

ImgZilla’yı indirin ve yerelde sıkıştırın — görselleriniz Mac’inizden hiç çıkmaz.