Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WinForm Image / 3 сообщений из 3, страница 1 из 1
09.06.2004, 10:52
    #32553673
chess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForm Image
Всем привет!
Сталкнулся вот с такой проблеммой.
Имеется форма. На форме расположена панель в нутри которой имеется pictureBox.
В pictureBox отображаются фотографии из базы данных. В БД хранятся токо ссылки на фото.
Проблемма в том, что пользователь не знает, какого разрешения будет фотография, а также какого вида, горизонтальная или вертикальная.
Размеры pictureBox.Size=70;50
Подскажите, как отображать изображения, что бы оно не теряло пропорции и умещалось в такие размеры pictureBox.Size=70;50
...
Рейтинг: 0 / 0
09.06.2004, 12:27
    #32553956
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForm Image
Код: 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
09.06.2004, 12:38
    #32553981
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinForm Image
Вот здесь или просто поставте ваш цвет или определите FSColor.
Это я делал, что бы балки необходимого цвета получать.
Код: plaintext
grPhoto.Clear(FSColor);

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


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