В контроллер заходит файл-картинка. Сигнатура контроллера
[HttpPost("add-img/{IdSection}/{idArticle}")]
public async Task<IActionResult> AddImageForArticle(List<IFormFile> file, string IdSection, string idArticle)
Все успешно заходит и сохраняет в базу. Только вот нужно изменить размер изображение и что не мало важно пропорционально. Т.е. изменить максимальную ширину(905px) и автоматом подогнать высоту. Может есть какие-то библиотеки?
Можно сделать следующим образом: открываем картинку как массив байт и там уже задаем новые размеры:
byte[] imageBytes;
using (MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
{
using (Image img = Image.FromStream(ms))
{
int h = 100;
int w = 100;
using (Bitmap b = new Bitmap(img, new Size(w,h)))
{
using (MemoryStream ms2 = new MemoryStream())
{
b.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg);
imageBytes = ms2.ToArray();
}
}
}
}
Что бы изменять картинку пропорционально, достаточно подключит логику.
К примеру была картинка 1920x1080, высчитываем сколько будет 1% от ширины: 1920 / 100 = 19,2
. Теперь узнаем на сколько процентов уменьшилась ширина (1920 - 905) / 19,2 = 52,86%
Значит уменьшим высоту на столько процентов: 1080 / 100 * 52,86 = 571
. Вписываем эти размеры вместо int h
и int w
и все готово.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть таблица avatars и таблица usersВ таблице users есть поле avatar_id
Использую laravel+nginxДопустим утром сделал chown -R 777 www-data /var/www/site
аргумент $value принимает значение только первого свойстваКак правильно применить это ко второму свойству?