Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Как говорит rcar, Вы не можете, не теряя некоторое качество, лучшее, которое можно сделать в c#:
Bitmap newImage = new Bitmap(newWidth, newHeight);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}
Если Вы не делаете векторную графику, нет никакого способа изменить размеры изображения, потенциально не теряя некоторое качество изображения.
Я верю тому, что Вы надеетесь делать, "Изменяют размеры/Передискретизируют" Ваших изображений. Вот хороший сайт, который дает инструкции и обеспечивает служебный класс (Что я также, оказывается, использую):
http://www.codeproject.com/KB/GDI-plus/imgresizoutperfgdiplus.aspx
Если Вы не изменяете размеры, Вы не можете сделать этого с растровой графикой.
то, Что можно сделать с хорошей фильтрацией и сглаживанием, должно изменить размеры, не теряя никакой качество noticable .
можно также изменить метаданные DPI изображения (предполагающий, что это имеет некоторых), который проведет точно тот же пиксельный подсчет, но изменится, как редакторы изображений думают о нем в 'реальных' измерениях.
И только покрыть все основания, если Вы действительно имели в виду просто размер файла изображения а не размеров действительного образа, я предлагаю, чтобы Вы посмотрели на кодирование без потерь данных изображения. Мое предложение для этого должно было бы повторно сохранить изображение как .png файл (я склонен использовать краску в качестве бесплатного транскодера для изображений в окнах. Изображение загрузки в краске, как сохраните в новом формате)
Вы не можете изменить размеры изображения, не теряя некоторое качество, просто потому что Вы сокращаете количество пикселей.
не уменьшают сторону клиента размера, потому что браузеры не делают хорошего задания изменения размеров изображений.
то, Что можно сделать, программно изменить размер перед рендерингом его, или поскольку пользователь загружает его.
Вот статья, которая объясняет один способ сделать это в c#: http://www.codeproject.com/KB/GDI-plus/imageresize.aspx
Посмотрите, нравится ли Вам изображение, изменяющее размеры качества этого модуля ASP.NET с открытым исходным кодом. существует живая демонстрация, таким образом, можно бездельничать с нею сами. Это приводит к результатам, которые являются (мне) невозможны различать от вывода Photoshop. Это также имеет подобные размеры файла - MS сделал хорошее задание на их кодере JPEG.
Существует, что-то там, изменение размеров с учетом контекста, не знает, будете ли Вы в состоянии использовать его, но это стоит посмотреть на, это наверняка
А хорошее демонстрационное видео (Увеличение появляется к середине) http://www.youtube.com/watch?v=vIFCV2spKtg
Здесь мог быть некоторый код. http://www.semanticmetadata.net/2007/08/30/content-aware-image-resizing-gpl-implementation/
Был тем излишеством? Возможно, существуют некоторые легкие фильтры, можно обратиться к увеличенному изображению для размывания пикселей немного, Вы могли изучить это.
Вы изменяете размеры больше, или меньший? Маленьким % или большим фактором как 2x, 3x? Что Вы подразумеваете под качеством для своего приложения? И какой изображения - фотографии, бескомпромиссные рисунки строки, или что? Запись собственного пиксельного кода шлифования низкого уровня или попытки сделать это как можно больше с существующими библиотеками (.net или безотносительно)?
по этой теме существует большая совокупность знаний. Ключевое понятие является интерполяцией.
рекомендации Просмотра:
* http://www.all-in-one.ee/~dersch/interpolator/interpolator.html
* http://www.cambridgeincolour.com/tutorials/image-interpolation.htm
* для C#: https://secure.codeproject.com/KB/GDI-plus/imageprocessing4.aspx? display=PrintAll&fid=3657&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26&select=629945 * это является определенным для Java, но могло бы быть образовательным - http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html
Вот поток форума , который предоставляет изображение C#, изменяющее размеры примера кода. Вы могли использовать один из библиотека GD редакторы связей, чтобы сделать передискретизацию в C#.