Belki birilerinin işine yarar, yapmak isteyip de böyle bir hizmetten haberi olmayanlar da olabilir diye böyle bir konu açma ihityacı duydum.

Mesele çok basit, gerek (bildiğim kadarıyla) SEO olsun gerek site performansı açısından olsun kullandığımız resimlerin optimize edilmesi çok gerekli oluyor. Resimleri tek tek elle optimize etmeye çalışmak (Wordpress gibi platformlarda hazır optimizasyon eklentisi var mıdır bilmiyorum açıkçası) sıkıcı da olabilir. İşte bunun için bütün resimlerinizi tek seferde optimize edebileceğiniz tinypng.com un API hizmetini kullanabiliriz.

Nasıl İndirilir?
Öncelikle gerekli olan API dosyalarını indirmekle başlayalım. Eğer bilgisayarınızda composer yüklü ise komut satırından (terminalden) şu komutu vererek;

composer require tinify/tinify


veya kendi Github adresinden gerekli dosyaları indirebilirsiniz. İkinci yol daha az uğraştırıcı elbette.

Nasıl Kullanılır?

Şimdi sistemi kullanmak için elzem olan API KEY imizi almaya geldi sıra,
Bu adrese gidip eposta adresinizle kayıt olarak çok basit bir şekilde yönergeleri izleyip API KEY alabilirsiniz.

Direkt link ile indirdiğinizi varsayıp ona göre anlatacağım. İndirdiğiniz dokümanlardan çıkan lib ve test isimli iki klasörü optimize etmek istediğiniz resimlerin olduğu klasörün içine atın. Daha sonra yine bu klasörün içine index.php veya istediğiniz bir isimde dosya açın ve içeriğini şu şekilde yapın;

ini_set("max_execution_time",0);

require_once("lib/Tinify/Exception.php"); //Gerekli kütüphaneleri dahil ediyoruz
require_once("lib/Tinify/ResultMeta.php");
require_once("lib/Tinify/Result.php");
require_once("lib/Tinify/Source.php");
require_once("lib/Tinify/Client.php");
require_once("lib/Tinify.php");

const API_KEY = 'api_keyinizi_buraya_yazın'; //Api keyiniz

\Tinify\setKey(API_KEY);

$dosyalar = glob("*.jpg"); //farklı resim uzantılarınız varsa .jpg yi ona göre ayarlayın.

foreach ($dosyalar as $item) {
$source = \Tinify\fromFile($item);
$source->toFile($item);
}


En üstte ini_set("max_execution_time",0); yazdık ki bu özelliğin varsayılan değeri aşıldığında işlemimiz sona ermesin. Yine de çok fazla sayıda resim dosyanız varsa garanti olması açısından yarı yarıya bölerek işleminizi yapabilirsiniz.

Composer ile indirmiş olanların index.php içeriği şu şekil olabilir;

ini_set("max_execution_time",0);

require_once("vendor/autoload.php"); //composer için

const API_KEY = 'api_keyinizi_buraya_yazın';

\Tinify\setKey(API_KEY);

$dosyalar = glob("*.jpg");

foreach ($dosyalar as $item) {
$source = \Tinify\fromFile($item);
$source->toFile($item);
}


Tek bir API anahtarının aylık 500 ücretsiz optimizasyon hakkı olduğunu da unutmayın.

Aslında bu sistemin bence daha kullanışlı bir yanı da; projenize dahil ederek resim yükleme işlemlerinde herhangi bir ekstra uğraşı gerektirmeden otomatik olarak optimize edilmesini sağlayabilir.

Daha detaylı bilgi için sitenin kendi dokümantasyon sayfasına bakabilirsiniz.