Gambar diatas diambil dari Flaticon
Kompresi gambar merupakan suatu tipe kompresi data yang dilakukan pada gambar digital. Salah satu algoritma yang dapat digunakan untuk kompresi gambar adalah algoritma SVD (Singular Value Decomposition). Program ini memanfaatkan SVD dalam melakukan kompresi gambar.
Program ini dideploy pada http://compress.bayusamudra.my.id. Backend yang digunakan adalah memanfaatkan Heroku.
Berikut ini adalah struktur folder dari project ini:
- Folder
test
berisi gambar uji yang digunakan - Folder
doc
berisi laporan tugas ini - Folder
src
berisi source program. Pada folder ini terdiri atas:- Folder
backend
berisi program backend. Pada bagian ini berisi algoritma kompresi dan api. - Folder
frontend
berisi program frontend. Pada bagian ini berisi pengaturan tampilan dan lainnya.
- Folder
Pada project ini, teknologi yang digunakan adalah
- FastAPI
- React
- Socket.IO
- Python
- Scipy dan Numpy
Untuk menggunakan program ini, anda dapat menggunakan backend yang telah disediakan ataupun menggunakan backend lokal. Frontend dapat anda akses pada http://compress.bayusamudra.my.id.
Notes : Backend terkadang belum stabil. Bila anda mengalami kegagalan saat menggunakan windows, silahkan gunakan WSL.
Untuk menjalankan server lokal, lakukanlah langkah berikut:
- Unduh python dan pip versi terbaru. Jika anda menggunakan linux, anda dapat menjalankan perintah berikut
sudo apt install python3 python3-pip python3-virtualenv
- Buatlah virtualenv dan aktifkan virtualenv.
virtualenv venv
source ./venv/bin/activate
- Install semua dependency
pip install -r requirements.txt
- Jalankan backend. Unutk melakukan hal ini, anda dapat menjalankan perintah berikut:
python ./src/backend/main.py
Jika anda ingin menggunakan port selain 80
, anda dapat menjalankan dengan perintah berikut:
python ./src/backend/main.py <PORT>
Anda juga dapat menggunakan docker untuk menjalankan backend. Berikut ini adalah langkah-langkahnya:
- Unduh Docker terlebih dahulu
- Jika sudah terinstall, jjalankan perintah berikut:
docker build --tag algeo:1.0.0 .
- Jalankan docker-compose up
docker-compose up
Bila anda ingin menjalankan frontend lokal, anda dapat melakukan langkah berikut
- Install Node.JS versi LTS
- Bukalah folder
./src/frontend
pada terminal anda. - Jalankan perintah berikut untuk menginstall depedency
npm i
- Jalankan perintah tersebut untuk memulai server frontend
npm start
- Bukalah browser pada
http://localhost:3000
- Bukalah http://compress.bayusamudra.my.id pada browser.
- Koneksikan backend dengan menekan icon colokan.
- Masukanlah data server. Anda dapat menggunakan server lokal dan juga server yang telah disediakan. Sebagai catatan, jangan gunakan alamat
127.0.0.1
ataupunlocalhost
. Hal ini dapat anda capai dengan mengubah konfigurasi file hosts. - Bila telah tersambung ke server, drop gambar pada tempat yang telah disediakan.
- Tunggu hingga proses selesai.
- Anda dapat mengatur tingkat kompresi setelah proses dekomposisi selesai
- Server hanya dapat menggunakan satu koneksi
- Bila anda ingin membatalkan proses, anda dapat melakukan restart browser. Selain itu, anda juga harus melakukan restart backend agar proses yang akan selanjutnya dilakukan tidak terganggu dengan proses sebelumnya.
- Bila anda tidak bisa terkoneksi ke server lokal, anda dapat mematikan sementara flag
chrome://flags/#block-insecure-private-network-requests
pada browser anda. Untuk selengkapnya, anda dapat lihat pada laman ini.