Как изменить размеры изображения к определенному размеру файла?

Я хотел бы изменить размеры изображения к определенному размеру файла. Например, не больше, чем 200 КБ. Что лучший подход должен достигнуть этого с.NET C#?

Спасибо!

16
задан 19 January 2010 в 14:18
поделиться

4 ответа

Если вы думаете об этом, вы не узнаете файловые файлы, пока он не будет изменен. Таким образом, вы либо должны выполнять последовательную итерацию попыток и сравнить размеры файлов позже или вы можете изменить свои ограничения для ограничения изображений к определенному набору измерений высоты и ширины.

3
ответ дан 30 November 2019 в 23:24
поделиться

Я думаю, что для чата можно использовать другие технологии, такие как AMQP (RabbitMQ и т.д.), Comet и т.д. Но для разработки профиля пользователя, PM и других можно использовать Django.

Не забывайте, что производительность по-прежнему зависит от конфигурации сервера (программное обеспечение веб-сервера, кэш, БД)

-121--3140657-

Это не вопрос библиотеки, а вопрос кодовой страницы используемого шрифта.

Если шрифт, используемый для терминала, на котором вы работаете, не содержит сердечки и бриллианты в текущей кодовой странице, вам не поможет ни одна библиотека.

Для дальнейшего чтения я бы попытался найти его, возможно, в таблицах Юникода - однако терминалы Юникода редки... И даже если у вас есть шрифт Юникод, нет никакой гарантии, что в нем будут изображения карт.

Итог: все зависит от шрифта, и нет гарантированного портативного способа достичь его без поставки собственных gylphs.

-121--3802399-

Если это не очень важная функция, проб и ошибок работает достаточно хорошо. Предположим, что если необходимо уменьшить входные данные до N * 100% , то это можно сделать путем масштабирования обоих измерений на sqrt (N) * 100% .

Если является важным, необходимо лучше понимать технологии сжатия изображений. Я предположу, что JPG. Это формат изображения, который обеспечивает сжатие с потерями, разбивая изображение на блоки 8x8 пикселей, преобразуя их в DFT, выбрасывая небольшие коэффициенты, а затем сжимая результирующий поток битов.

Теперь из этого следует, что вы можете немного определить уровень качества, сколько небольших коэффициентов вы выбрасываете. Вам не нужно переделывать (дорогой) DFT для этого. Так что если файл заканчивается немного слишком большим, вы можете выбросить еще несколько коэффициентов и повторно сжать. И если вы были немного агрессивны, то положите обратно несколько коэффициентов и сжимайтесь снова. Это все довольно быстро.

1
ответ дан 30 November 2019 в 23:24
поделиться

Вы можете сделать совсем много с помощью Drawing.image класс, чтобы изменить размер изображения.

Есть много вопросов о том, как это сделать. Вот один .

С точки зрения размера - вы не узнаете, каким размером до операции изменений. Единственный способ быть уверенным в том, чтобы изменить размер, проверять результат, и если оно слишком большая, попробуйте изменить размер с более низким качеством. Повторить пока не сделано.

Вы можете приблизить размер, если вы знаете размеры и глубину цвета, как описано в ответах на это (идентичный?) Вопрос.

1
ответ дан 30 November 2019 в 23:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: