AngularJs — уменьшение размера изображения при сохранении в базе данных

В моем приложении Angular у меня есть функции просмотра и загрузки изображений. Образцы изображений, предоставленные Windows7 (Chrysanthemum.jpg, Desert.jpg и т. д.), имеющие размер более 500 КБ. Мне нужно сохранить изображение с максимальным размером 170 КБ (требование клиента). Итак, как уменьшить размер изображений при загрузке в базу данных, не слишком сильно влияя на качество изображения) Также я не хочу, чтобы проверка ограничивала выбор пользователем изображений размером более 170 КБ. Я конвертирую изображение в Base64 и сохраняю его как тип данных изображения SQL Server.

Мой HTML-код:

<input id="BrowseFile" type="file" ngf-select ng-model="vm.picFile" name="file" ngf-change="vm.uploadPic(vm.picFile)" accept="image/*" required >

Мой код контроллера:

 this.uploadPic = function (picFile) {
        if (picFile == null)
            console.log("Please select image");
        else {                
                vm.fileName = picFile.name;

                picFile.upload = Upload.base64DataUrl(picFile).then(function (imgBase64) {                         
                    vm.image = imgBase64;   // Storing Uploaded photo string for storing in database.                            
                });
            }
 }

Любое предложение будет высоко оценено.

Примечание. Я использовал директиву ng-file-upload для просмотра и загрузки изображений.

ОБНОВЛЕНИЕ 1:

Я получил директиву Angular Image Compress по этой ссылке GitHub https://github.com/oukan/angular-image-compress теперь работает над этим с моим существующим кодом для сжатия изображения.


person Umesh AP    schedule 06.11.2017    source источник


Ответы (1)


angular-image-compress.js — отличный способ выполнить эту задачу.

Я успешно реализовал функцию сжатия изображений с помощью этой директивы. См. https://github.com/oukan/angular-image-compress как отправная точка.

person Umesh AP    schedule 15.01.2018