Bir görüntü PHP yüklenme üzerine meta elimden olması

7 Cevap php

Biliyorum belli sitesi yakın zamanda 3,5 TB aylık 2,5 TB kendi bant genişliği yükseltti.

Nedeni geçenlerde 2,5 sınırı gitti olduğunu. Onlar bant genişliği kullanımını aşağı almak için nasıl bilmiyorum şikayet ediyoruz.

Bunları düşünün ben görmedim bir şey JPEG ve sitede gösterilen (ve bir görüntü ağır sitesi) diğer görüntülerin meta içerebilir olmasıdır. Resmin çekildiği ve bu nerede.

İşin gerçeği bu bilgiler bu sitede hiçbir önemi olduğunu olduğunu. Bu olacak, hiç kullanılmamalıdır değil. Bir kaç kilobayt birkaç bayt her görüntülerin dosya boyutu artar bu yana henüz hala bant genişliği ekleyerek oluyor.

Kendi meta binlerce görüntüleri sıyırma, ayda daha sonra 2,5 TB kadar kullanan bir sitede daha değilse, bence en azından ayda bir kaç gigabayt tarafından bant genişliği kullanımını azaltmak yardımcı olacaktır.

Yani PHP bunu yapmanın bir yolu var mı? Ve ayrıca, allready varolan dosyaları için, herkes bir good otomatik meta veri çıkarıcı biliyor? I JPEG & PNG Stripper biliyorum, ama yine de ilk temizlik için yararlı olabilirdi ... çok iyi değil ...

7 Cevap

Smush.it! It will strip all un-necs info from an image. They have an API görüntüleri crunch için kullanabileceğiniz göz atın.

Note: By Design, bu may size filetype değiştirin. Bu amaçla üzerinde. Başka filetype az bayt ile aynı kalitede, aynı görüntüyü göstermek Eğer size yeni bir dosya verecektir.

Bu GD ile Önemsiz:

$img = imagecreatefromjpeg("myimg.jpg");
imagejpeg($img, "newimg.jpg", $quality);
imagedestroy($img);

Bu EXIF ​​veri aktarımı olmaz. Aslında olsa, ne kadar tasarruf bant genişliği bilmiyorum, ama görüntülerin sıkıştırma arttırmak için yukarıdaki kodu kullanabilirsiniz. Muhtemelen çok popüler olmayacak, ancak o, a lot bant genişliği kaydetmek istiyorsunuz.

Ben ciddiye görüntü meta burada tüm kötülüklerin köküdür şüpheliyim.

Dikkate alınması gereken bazı sorular:

  • Nasıl web sunucusu yapılandırılır?
  • Düzgün http 304 cevapları sorunu mu?
  • Tarayıcı tarafından önbelleğe alınmasını söyledi veri engeller php komut dosyası aracılığıyla veri el yapımı önbelleğe / akarsu çeşit var değil mi? (Bu durumda, url yeniden yazma ve http yönlendirmeleri dikkate alınmalıdır).

Bunu profile gerekir düşünüyorum. Bunu bir kaç GB tasarruf ancak bant genişliği 2.5TB nispeten az şu konuda haklı olabilir. Sen en hizmet ve çalışmak ediliyor ne hakkında gerçek veri gerekir. Eğer bu sizin ilk önbelleğe alma başlıkları ve 304 yanıtları kontrol etmelisiniz bant genişliği kullanımı çok yüksek göndermek görüntüleri bulmak yaparsanız, ayrıca görüntüleri hizmet için amazon S3 gibi bir şey kullanarak incelemek isteyebilirsiniz. Bunu yaparak bant genişliği maliyetlerinden çok azaltmayı başarmışlardır.

EXIF verileri gerçekten o zaman imagejpeg işlevini kullanarak bir jpeg görüntü kopyalamak için GD kütüphanesi kullanımı bir fark bu kadar yapıyor, söyledi. Bu EXIF ​​verileri kopyalamak olmaz.

Emil H muhtemelen sorusunu iyi giderir.

Ama bu neredeyse kesinlikle size düşünebilirsiniz kadar tasarruf olmaz eklemek istedim. Meta Bu tip çok az yer kaplıyor; Ben düşünürdüm

  1. Küçük bir dosya boyutu görüntüleri yeniden sıkıştırmak ve
  2. Kırpma veya görüntülerin çözünürlüğünü azaltmak için yeniden boyutlandırma

hem de çok daha büyük bir etkiye sahip olacak. Tek noktadan biri ile muhtemelen bant genişliği% 50 düşüş olabilir ve hem de, bant genişliği% 80 düşebilir - Bazı görüntü boyutunu feda etmeye istekli olup olmadığını olmasıdır.

Değilse, her zaman bir 'Ayrıntı' bağlantısı ile, daha küçük boyutta, varsayılan görünüm olabilir. Sadece tarama Çoğu kişi küçük bir resim görürsünüz ve sadece büyük boyut isteyenler büyütmek için tıklayın, bu yüzden hala neredeyse tüm bant genişliği tasarrufu elde edersiniz. Bu Flickr, örneğin ne olduğunu.

Belki onaltılık veri manipülasyon çeşit burada yardımcı olacaktır. Ben aynı sorunla karşı karşıya ve otomatikleştirilmiş bir çözüm çeşit üzerinde araştırıyorum.

Bu yapılabilir ve mümkünse, ben bunun için bir php sınıf yazacağım Sadece merak.

(Örneğin facebook yaptığı gibi bir java uygulamasını kullanarak) istemci tarafında tüm resim manipülasyon yapmak akıllıca olabilir ve görüntü, sıkıştırılmış resized ve tamamen gereksiz piksel ve içeriğin elimden zaman sonra, o iyi bir boyutu da yüklenebilir, bant genişliği ve sunucu tarafında performans tasarrufu! (Ilk gelişimi pahasına)