powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForm Image
3 сообщений из 3, страница 1 из 1
WinForm Image
    #32553673
chess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Сталкнулся вот с такой проблеммой.
Имеется форма. На форме расположена панель в нутри которой имеется pictureBox.
В pictureBox отображаются фотографии из базы данных. В БД хранятся токо ссылки на фото.
Проблемма в том, что пользователь не знает, какого разрешения будет фотография, а также какого вида, горизонтальная или вертикальная.
Размеры pictureBox.Size=70;50
Подскажите, как отображать изображения, что бы оно не теряло пропорции и умещалось в такие размеры pictureBox.Size=70;50
...
Рейтинг: 0 / 0
WinForm Image
    #32553956
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
private Image FixedSize(Image imgPhoto, int Width, int Height)
		{
			int sourceWidth = imgPhoto.Width;
			int sourceHeight = imgPhoto.Height;
			int sourceX =  0 ;
			int sourceY =  0 ;
			int destX =  0 ;
			int destY =  0 ; 

			float nPercent =  0 ;
			float nPercentW =  0 ;
			float nPercentH =  0 ;

			nPercentW = ((float)Width/(float)sourceWidth);
			nPercentH = ((float)Height/(float)sourceHeight);
			if(nPercentH < nPercentW)
			{
				nPercent = nPercentH;
				destX = System.Convert.ToInt16((Width - 
					(sourceWidth * nPercent))/ 2 );
			}
			else
			{
				nPercent = nPercentW;
				destY = System.Convert.ToInt16((Height - 
					(sourceHeight * nPercent))/ 2 );
			}

			int destWidth  = (int)(sourceWidth * nPercent);
			int destHeight = (int)(sourceHeight * nPercent);

			Bitmap bmPhoto = new Bitmap(Width, Height, 
				PixelFormat.Format24bppRgb);
			bmPhoto.SetResolution(imgPhoto.HorizontalResolution, 
				imgPhoto.VerticalResolution);

			Graphics grPhoto = Graphics.FromImage(bmPhoto);
			grPhoto.Clear(FSColor);
			grPhoto.InterpolationMode =	InterpolationMode.HighQualityBicubic;

			grPhoto.DrawImage(imgPhoto, 
				new Rectangle(destX,destY,destWidth,destHeight),
				new Rectangle(sourceX,sourceY,sourceWidth,sourceHeight),
				GraphicsUnit.Pixel);

			grPhoto.Dispose();
			return bmPhoto;
		}

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
WinForm Image
    #32553981
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот здесь или просто поставте ваш цвет или определите FSColor.
Это я делал, что бы балки необходимого цвета получать.
Код: plaintext
grPhoto.Clear(FSColor);

Я сделал всё что мог, кто может пусть сделает лучше.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForm Image
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]