można obliczyć przybliżony poziom informacyjny dla obrazu poprzez oryginalny rozmiar obrazu podzielonego przez liczbę pikseli:
info = fileSize/(width * height);
Mam obrazu, który jest 369636 bajtów i 1200x800 pikseli, więc używa ~ 0,385 bajtów na piksel.
Mam mniejszą wersję, która ma 101111 bajtów i 600 x 400 pikseli, więc używa ~ 0,4213 bajtów na piksel.
Po zmniejszeniu obrazu zobaczysz, że generalnie będzie zawierać nieco więcej informacji na piksel, w tym przypadku około 9% więcej. W zależności od rodzaju obrazu i jak bardzo ich kurczyć, powinieneś być w stanie obliczyć średnią za ile wzrasta informacje/piksel racja (C), tak aby można było obliczyć przybliżoną wielkość pliku:
newFileSize = (fileSize/(width * height)) * (newWidth * newHeight) * c
Od tego można wyodrębnić formułę jak duże trzeba zrobić zdjęcie, aby osiągnąć konkretny rozmiar pliku:
newWidth * newHeight = (newFileSize/fileSize) * (width * height)/c
to będzie Ci bardzo blisko do pożądanego rozmiaru. Jeśli chcesz zbliżyć się, możesz zmienić rozmiar obrazu na wyliczony rozmiar, skompresować go i obliczyć nową liczbę bajtów na piksel z rozmiaru pliku, który masz.
Jaki rodzaj obrazu? –