Нужна помощь в увеличение размера изображения

Sirius123

Client
Регистрация
16.09.2017
Сообщения
44
Благодарностей
12
Баллы
8
Всем привет, помогите, пожалуйста, со сниппетом, надо увеличить размер изображения. Изображения сжатые телеграмом, исходные изображения примерно по 30-60 кб.
Сниппет должен принимать изображение, проверять его размер если оно меньше 201 кб, то увеличить его до 202-210 кб и сохранить изображение с заменой старого.
 

lederer

Client
Регистрация
13.04.2013
Сообщения
211
Благодарностей
95
Баллы
28
Здравствуйте, попробуйте такой вариант

C#:
string imagePath = project.Directory + @"\1.jpg"; // путь к изображению
long minSizeBytes = 201 * 1024;
long targetSizeBytes = new Random().Next(202, 211) * 1024;

FileInfo fileInfo = new FileInfo(imagePath);
long originalSize = fileInfo.Length;

if (originalSize >= minSizeBytes)
{
    project.SendInfoToLog($"Файл уже >= 201КБ: {originalSize / 1024}КБ", true);
}
else
{
    // Читаем оригинальное изображение
    byte[] imageData = File.ReadAllBytes(imagePath);

    // Подсчитаем, сколько байт нужно добавить
    long bytesToAdd = targetSizeBytes - imageData.Length;

    // Добавим "мусор" (не влияющий на отображение) в конец изображения
    using (FileStream fs = new FileStream(imagePath, FileMode.Append, FileAccess.Write))
    {
        byte[] filler = new byte[bytesToAdd];
        new Random().NextBytes(filler);
        fs.Write(filler, 0, filler.Length);
    }

    long finalSize = new FileInfo(imagePath).Length;
    project.SendInfoToLog($"Файл увеличен: {originalSize / 1024}КБ → {finalSize / 1024}КБ", true);
}
 
Последнее редактирование:

Кто просматривает тему: (Всего: 2, Пользователи: 1, Гости: 1)