Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как уменьшить картинку? (попиксельно) 
V
    Опции темы
Win MK 32
Дата 12.1.2009, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Вот код для вывода картинки, как ее уменьшить?
Код

      static void SetPicture(byte[] img, string fileName) {
         int i;
         Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap;
         i = 0;
         for(int x = 0; x < bmp.Width; x++) {
            for(int y = 0; y < bmp.Height; y++) {
               img[i+2]=bmp.GetPixel(y, x).R; //2
               img[i+1]=bmp.GetPixel(y, x).G; //1
               img[i+0]=bmp.GetPixel(y, x).B; //0
               i=i+3;
            }
         }
      }

PM   Вверх
diadiavova
Дата 12.1.2009, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Код

      static void SetPicture(byte[] img, string fileName) {
         int i;
         Bitmap tempBmp = Image.FromFile(fileName) as Bitmap;
         Bitmap bmp = new Bitmap(tempBmp,16 ,16);
         i = 0;
         for(int x = 0; x < bmp.Width; x++) {
            for(int y = 0; y < bmp.Height; y++) {
               img[i+2]=bmp.GetPixel(y, x).R; //2
               img[i+1]=bmp.GetPixel(y, x).G; //1
               img[i+0]=bmp.GetPixel(y, x).B; //0
               i=i+3;
            }
         }
      }


Уменьшит(увеличит) до размера 16х16, можешь выставить свой.

Это сообщение отредактировал(а) diadiavova - 12.1.2009, 07:06


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
gambit
Дата 10.3.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



up

А как уменьшить с сохранением пропорций, мне надо чтобы обе стороны картинки были <=80 пикселям.

Например мне на сайт пользователь заливает аватар, и я хочу установить ограничение на размер в 80x80 п, и если она больше уменьшаю ее чтобы она не нарушала это правило, но с сохранением пропорций.
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 10.3.2009, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Да собсно...так же, только размер надо вычислить.
Код

Bitmap GetPic(Image src, int width, int height)
{
    int retW = width;
    int retH = height;
    Single k = 1;
    if(src.Width<=width && src.Height <= height)
    {
           return new Bitmap(src);
    }
    if(src.Width > src.Height)
    {
        k = width / src.Width;
    }
    else
    {
        k = height / src.Height;
    }
    retW = (int)k * retW;
    retH = (int)k * retH;
    return new Bitmap(src, retW, retH);

}


Код не проверял, но думаю: идея понятна.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.