Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2016, 19:05   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Изменение длины изображения помещённого в PictureBox

Смотрел я как работать к PictureBox'ами. Так вот, стала интересно перезагрузка метода BitMap: Bitmap(Image, Size).
Написал так:
Код:
Bitmap bmp2 = new Bitmap (@"d:\Картинки\C НЭТА\BAB\018.jpg", new Size (44, 43));
            picture2.Image = bmp2;
Появилась ошибка:
Код:
Ошибка	1	Наиболее подходящий перегруженный метод для "System.Drawing.Bitmap.Bitmap(string, bool)" имеет несколько недопустимых аргументов	E:\Обучающее видео\Компьютерные\Программирование\videosharp.info. Теория ООП на практике\Project\Geometry1\Geometry1\Form1.cs	30	27	Geometry1
Ошибка	2	Аргумент "2": преобразование типа из "System.Drawing.Size" в "bool" невозможно	E:\Обучающее видео\Компьютерные\Программирование\videosharp.info. Теория ООП на практике\Project\Geometry1\Geometry1\Form1.cs	30	74	Geometry1
Что это означает вообще?
hoz вне форума Ответить с цитированием
Старый 07.03.2016, 21:48   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,881
По умолчанию

Нет перегрузки принимающей строку и размер.
Есть перегрузка принимающая имейдж и размер (2 вида: размер в виде Size и в виде пары интов). Имейдж уже может быть как раз создан битмапом конструктором с аргументом строкой.
В итоге:
Код:
Bitmap bmp2 = new Bitmap (new Bitmap(@"путь"), 44, 33);
Цитата:
Сообщение от hoz Посмотреть сообщение
Что это означает вообще?
А значит оно то, что Вы плохо умеете пользоваться интеллисенсом и/или кнопкой F12 , ну и слушать студию.

Последний раз редактировалось phomm; 07.03.2016 в 21:50.
phomm вне форума Ответить с цитированием
Старый 08.03.2016, 00:59   #3
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Нет перегрузки принимающей строку и размер.
Есть перегрузка принимающая имейдж и размер (2 вида: размер в виде Size и в виде пары интов). Имейдж уже может быть как раз создан битмапом конструктором с аргументом строкой.
В итоге:
Код:
Bitmap bmp2 = new Bitmap (new Bitmap(@"путь"), 44, 33);
Ну так изначально, я и воспользовался первой из обсуждаемых перегрузок: Bitmap(Image), прописав только путь к изображению так:
Код:
Bitmap bmp2 = new Bitmap (@"d:\Картинки\C НЭТА\BAB\018.jpg");
Я же не прописал тут так.. :
Код:
Bitmap bmp2 = new Bitmap(new Bitmap (@"d:\Картинки\C НЭТА\BAB\018.jpg"), 44, 55);
По аналогии, раз тут всё работает, было решено добавить 2 инта.. но не чего не вышло. Возник вопрос, почему? Ведь перегрузка то отличается лишь на Size Bitmap(Image, Size) . Я добавил 2 инта сюда, что б задать размер, но не компилируется. Почему? У Вас так вообще при создании экземпляра BitMap изображение получается путём добавления по слабой ссылке её одного BitMap'а... я этого не понял. Ведь я при перегрузке с только Bitmap(Image) не делал так.. Почему тогда тут иначе не работает? Ведь нам нужно опять-таки изображения получить и всё! Как и в второй перегрузке Bitmap(Image, Size). о этого не происходит.

Цитата:
Сообщение от phomm Посмотреть сообщение
А значит оно то, что Вы плохо умеете пользоваться интеллисенсом и/или кнопкой F12 , ну и слушать студию.
Ошибки то не совсем понимаю. Вот как въеду как их понимать, тогда
то поможет.

Последний раз редактировалось hoz; 08.03.2016 в 01:02.
hoz вне форума Ответить с цитированием
Старый 08.03.2016, 02:25   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я же не прописал тут так..
а тут надо было именно так.
Цитата:
Ведь я при перегрузке с только Bitmap(Image) не делал так..
вы не использовали эту перегрузку в теме ни разу.
вы использовали Bitmap(string)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.03.2016, 12:40   #5
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы не использовали эту перегрузку в теме ни разу.
вы использовали Bitmap(string)
А откудого мне было знать, что нужно было это делать так, если там нет примера даже? Как Вы вообще в процессе это всё въезжаете? Хочу понять как правильно мыслить при работе с базовыми классами, но бывают такие вот грабли..

Кстати, там кроме как так:
Код:
Bitmap bmp2 = new Bitmap (new Bitmap(@"путь"), 44, 33);
Реализовать иначе нет возможности?
hoz вне форума Ответить с цитированием
Старый 08.03.2016, 21:03   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
А откудого мне было знать, что нужно было это делать так, если там нет примера даже?
а зачем пример? сигнатура же есть.
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
вот все конструкторы класса Bitmap, действовать надо по ним, а не по принципу "ну там же добавилось"
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.03.2016, 23:18   #7
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а зачем пример? сигнатура же есть.
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
вот все конструкторы класса Bitmap, действовать надо по ним, а не по принципу "ну там же добавилось"
Это понятно, что нужно действовать следуя сигнатуре. Но, тем не менее, вот наша интересующая перегрузка:
Код:
Bitmap Конструктор (Image)
Её синтаксис такой:
Код:
public Bitmap(
	Image original
)
Окудого мне знать, что Image original это и есть
Код:
new Bitmap(@"путь")
?
hoz вне форума Ответить с цитированием
Старый 10.03.2016, 23:22   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Посмотреть в документации от чего наследуется Bitmap или что наследуется от Image?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.03.2016, 16:07   #9
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Посмотреть в документации от чего наследуется Bitmap или что наследуется от Image?
А конкретнее? Я не совсем понимаю как ориентироваться в документации. Зайдя на страницу с методами соответствующего класса не всегда имеются объяснения реализации.
hoz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отследить изменение Image в PictureBox ka11n C# (си шарп) 7 30.09.2014 11:08
Копирование вырезанного изображения в другой PictureBox / C# Windows Forms Любимая Windows Forms 1 14.05.2014 10:07
Отрисовка изображения в заданном местоположении на PictureBox AnDrOiD73 C# (си шарп) 4 07.11.2012 20:06
Изменение изображения picturebox при нажатии на пункт listbox NeedLess Общие вопросы C/C++ 2 28.06.2012 19:43
Изображения в PictureBox Александр Солодун C# (си шарп) 2 24.11.2011 19:24