Tiny JPG PNG Compresion API Kompresi Gambar dengan Hasil Maksimal
Pernahkan anda melihat gambar dengan ukuran 1MB 2MB 3MB atau sampai 5MB. Yah tentu untuk kualitas resolusi gambar yang bagus akan menghasilkan ukuran gambar juga semakin besar. Namun, apa jadinya jika gambar gambar yang besar tersebut tersimpan di sebuah Hosting atau Server?? Awalnya mungkin hal ini tidak menjadi masalah karena jumlah konten yang ada id website anda masih sedikit. Namun, semakin hari semakin banyak dan tentu akan semakin menambah jumlah Disk Size pada Server Hosting anda.
Misalkan 1 gambar dalam kontem artikel anda sebesar 500KB dengan total artikel dalam sebulan ada 200 artikel. Maka dapat kita simulasikan dengan 500KB X 200 Artikel. Maka hasilnya adalah 100.000KB atau 100MB maka dapat dilihat jik artikel anda dalam setahun sekitar 1200MB atau 1.2GB. Semakin tahun maka semakin banyak disk space yang dipakai untuk menyimpan data gambar tersebut terlebih anda ketahui bahwa untuk server hosting dapat dilihat bahwa harga sesuai dengan kapasitas disk. Misalkan anda pakai Provider NiagaHoster, Domainesia, RumahWeb atau yang lain maka harga akan disesuikan dengan ukuran Disk / Hardisk. MIsalkan anda beli Hosting dengan ukuran disk 5GB maka dengan hardisk sejumlah tersebut anda harus mengupgrade untuk mendapatkan disk yang lebih besar setelah sekitar 4 tahun. Itu dengan asumsi anda dalam satu bulan ada 200 artikel. Lalu bagaimana jika ukuran gambar setiap artikel 1MB atau bahkan 2MB??? Tentu akan semakin cepat disk terisi dan anda harus menyisihkan uang untuk upgrade Hosting.
Masalah tersebut menjadi perhatian serius bagi semua Backend Developer agar memaksimalkan penyimpanan tanpa mengurangi kualitas gambar. Loker Bumiayu ID juga merasakan hal tersebut. Dengan konten lowongan kerja yang diupload setiap hari sekitar 30 artikel maka dapat dilihat dalam sebulan ada 900 artikel. Wow. Tentu akan sangat cepat Hardisk menjadi penuh jika tidak diperhatikan ukuran Gambar setiap konten.
Lantas Bagaimana Solusinya??
Seperti kita ketahui pemrogram Backend menggunakan PHP masih terkendala bagaiman Script dapat mengkompresi sebuah gambar dengan tanpa mengurangi kualitas gambar. Setelah mencari referensi dari banyak sumber, maka yang paling tepat adalah menggunakan Library miliki orang lain atau yang kita sebut Open Access API. Mencari API dari berbagai sumber dengan penggunaan yang mudah sangat sulit awalnya. Hampir kebanyakan Developer mewajibkan ada pembayaran untuk setiap API.
Saya menemukan sebuah API yang dapat digunakan dengan mudah dan panduannya sangat lengkap.
Apa itu??
Tiny JPG Tiny PNG
Smart WebP, JPEG and PNG compression
More than 1 billion WebP, PNG and JPEG images optimized and still counting!
What does TinyJPG do?
TinyJPG reduces the file size of your JPEG images. Every uploaded image is analyzed to apply the best possible JPEG encoding. Based on the content of your image an optimal strategy is chosen. The result is a quality image without wasting storage or bandwidth!
Why should I use TinyJPG?
JPEG is the most popular format for photos on your websites and apps. Many JPEG files do not use optimal compression, wasting valuable bytes. Balancing quality and small file size used to be a time consuming task that only humans could do. Not anymore. Let us worry about compression.
Kenapa saya menyarankan memakai tiny compression? Tiny menyediakan layanan untuk developer menggunakan API secara gratis dengan Batasan penggunaan 500 Request dalam 1 bulan. Jika melebihi 500 maka akan dihitung berbayar dengan ketentuan berlaku. Anda dapat mendaftar dengan mengkases
https://tinyjpg.com/developers
Pendaftarannya sangat mudah anda hanya perlu menggunakan email untuk memverifikasi email dan alamat API anda akan dikirim ke email tersebut.
Seperti tertulis pada website tiny banyak Bahasa pemrogram yang support API ini seperti Ruby, PHP, NodeJs, Python, Java dan Net serta terdapat Plugin untuk pengguna Wordpress. Jadi kalua anda pakai PHP maka ini dapat digunakan dengan mudah.
Anda juga dapat membuat integrasi Anda sendiri dengan klien HTTP(S) mana pun. Server akan memampatkan gambar Anda dan merespons dengan URL tempat Anda dapat mengambil hasilnya.
curl --user api:YOUR_API_KEY \
--data-binary @unoptimized.png -i https://api.tinify.com/shrink
Fitur yang dapat digunakan
Same API for WebP, JPEG & PNG images
The API compresses WebP, JPEG and PNG images. You only have to upload your source image and download the result. Everything else happens automatically.
Upload directly or provide a URL to the image
You can either upload images directly or specify a URL to the image you want to compress.
Preserve metadata
You can choose to preserve copyright information, the GPS location and the creation date in the compressed JPEG images. For PNG images the copyright information can be preserved.
Amazon S3 and Google Cloud Storage (new)
You can instruct the API to save the optimized images directly in your Amazon S3 or Google Cloud Storage buckets. When doing this you may also set custom Cache-Control and Expires headers.
Perfect image resizing
The API can resize your images as well as optimising them. You only have to upload the original once and then generate the image sizes you need. Resizing includes correct gamma scaling, bicubic transparency edge correction and natural image sharpening.
Area of interest detection
Take advantage of smart cropping to create thumbnails with different aspect ratios. The API will resize your images and crop away the parts that are visually the least interesting.
Untuk anda pengguna PHP dapat melihat referensi di website https://tinyjpg.com/developers/reference/php
Mengompresi gambar
Anda dapat mengunggah gambar WebP, JPEG, atau PNG apa pun ke Tinify API untuk mengompresnya. Tiny akan secara otomatis mendeteksi jenis gambar dan mengoptimalkan dengan mesin TinyPNG atau TinyJPG yang sesuai. Kompresi akan dimulai segera setelah Anda mengunggah file atau memberikan URL ke gambar.
Anda dapat memilih file lokal sebagai sumber dan menulisnya ke file lain.
$source = \Tinify\fromFile("unoptimized.webp");
$source->toFile("optimized.webp");
Anda juga dapat mengunggah gambar dari buffer (string dengan biner) dan mendapatkan data gambar terkompresi.
$sourceData = file_get_contents("unoptimized.jpg");
$resultData = \Tinify\fromBuffer($sourceData)->toBuffer();
Anda dapat memberikan URL ke gambar Anda daripada harus mengunggahnya.
$source = \Tinify\fromUrl("https://tinypng.com/images/panda-happy.png");
$source->toFile("optimized.png");
Selain kompresi anda juga dapat menggunakan Metode Resizing images
Gunakan API untuk membuat versi yang diubah ukurannya dari gambar yang Anda unggah. Dengan membiarkan API menangani pengubahan ukuran, Anda tidak perlu menulis kode seperti itu sendiri dan Anda hanya perlu mengunggah gambar Anda sekali. Gambar yang diubah ukurannya akan dikompresi secara optimal dengan tampilan yang bagus dan tajam.
Anda juga dapat memanfaatkan pemotongan cerdas untuk membuat gambar mini yang berfokus pada area yang paling penting secara visual dari gambar Anda.
Mengubah ukuran dianggap sebagai satu kompresi tambahan. Misalnya, jika Anda mengunggah satu gambar dan mengambil versi yang dioptimalkan ditambah 2 versi yang diubah ukurannya, ini akan dihitung sebagai total 3 kompresi.
Untuk mengubah ukuran gambar, panggil metode resize ukuran pada sumber gambar:
$source = \Tinify\fromFile("large.jpg");
$resized = $source->resize(array(
"method" => "fit",
"width" => 150,
"height" => 100
));
$resized->toFile("thumbnail.jpg");
Preserving metadata
You can request that specific metadata is copied from the uploaded image to the compressed version. Preserving copyright information, the GPS location and the creation date are currently supported. Preserving metadata adds to the compressed file size, so you should only preserve metadata that is important to keep.
Preserving metadata will not count as an extra compression. However, in the background the image will be created again with the additional metadata.
To preserve specific metadata, call the preserve method on an image source:
$source = \Tinify\fromFile("unoptimized.jpg");
$copyrighted = $source->preserve("copyright", "creation");
$copyrighted->toFile("optimized-copyright.jpg");
Saving to Amazon S3
You can tell the Tinify API to save compressed images directly to Amazon S3. If you use S3 to host your images this saves you the hassle of downloading images to your server and uploading them to S3 yourself.
To save an image to S3, call the store method on an image source:
$source = \Tinify\fromFile("unoptimized.jpg");
$source->store(array(
"service" => "s3",
"aws_access_key_id" => "AKIAIOSFODNN7EXAMPLE",
"aws_secret_access_key" => "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region" => "us-west-1",
"headers" => array("Cache-Control" => "max-age=31536000, public"),
"path" => "example-bucket/my-images/optimized.jpg"
));
Pengalaman saya menggunakan API Tiny sangat mudah dan kuat secara dalam Mengkompresi Image sehingga penyimpanan Hosting menjadi lebih aman dengan kapasitas 1 gambar bisa menjadi 10KB atau sekitar 70KB. Sangat penting bagi seorang Backend Developer memikirkan hal Kompresi Image untuk meminimalisir gambar.
Jika anda tertarik menggunakan Tiny JPG silahkan coba dan anda dapat menerapkan pada website anda. Secara umum menggunakan tiny JPG secara manual juga sangat mudah, kita dapat mengupload hingga 20 gambar dalam 1 sesi kompresi. Luar Biasa.
Sumber:
https://tinyjpg.com/