Как Вписать _КРАСИВО_ картинку в Picturebox?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Как Вписать _КРАСИВО_ картинку в Picturebox?

Сообщение xenomorph » 01.09.2006 (Пт) 22:44

Привет Всем!

Мне необходимо в picturebox вписать картинку.
Autoresize картинки под размер этого picturebox,
(!с сохранением пропорций оригинала!)
а не наоборот.

Я уже баловался с PaintPicture :-(((((
и длинами этих пикчербоксов да коэффициентами ...

Выходит ужасно криво ...

Может кто сталкивался с подобной проблемой?
--
Оооочень буду благодарен за код\линк на код!
Заранее огромное спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 01.09.2006 (Пт) 22:59

Я решал так - в pictue создавал image, в image. Делал image невидимым. устанавливал для image параметр AutoSize=True.
Грузил туда картинку.
Далее высчитывал по пропрции отношение image1.height к picture1.height, находил второе значение
Присваивал эти значения Image1.
Делал Image1 видимым...

Сорри, исходника не привожу, если найду у себя - выложу. Но там и так всё просто, на самом деле...

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 01.09.2006 (Пт) 23:36

xenomorph, если у тебя картинка 1280*1024 и ты ее хочешь вписать в квадратик 128*102, то хоть Билла Г. посади за VB - нифига у тебя не получится, все время будет криво =)
Размеры могут иметь другие значения. Суть не меняется.

Единственный выход - применить (написать) алгоритм фильтра изображения.. Типа как в MatLab-e (программно) или в навороченном ResizeImage каком нить (пользовательски)..

Но мудохаться будешь долго, да и результаты не всегда оправдывают ожидания.. Не стоит это того..

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 02.09.2006 (Сб) 9:28

Всем смотреть сюда...
Вложения
High_quality_stretch_Blt.zip
(7.08 Кб) Скачиваний: 171
Лучший способ понять что-то самому — объяснить это другому.

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Re

Сообщение xenomorph » 02.09.2006 (Сб) 12:24

2 Особист - Спасибо! Прокатило!

2 Antonariy - Еще не смотрел, (я в Е-кАфе),
Но нутром чую что внутри !_МОНСТР_! :-).
--
Всем спасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как Вписать _КРАСИВО_ картинку в Picturebox?

Сообщение alibek » 04.09.2006 (Пн) 7:38

xenomorph писал(а):и длинами этих пикчербоксов да коэффициентами ...

И что там сложного?
Код: Выделить всё
If w1/h1 < w2/h2 Then
  k = w1/w2
Else
  k = h1/h2
End If
Lasciate ogni speranza, voi ch'entrate.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 04.09.2006 (Пн) 14:34

Antonariy писал(а):Всем смотреть сюда...


Ну да, прямо таки vbPaletteModeNone... :? Там должно быть STRETCH_HALFTONE
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.09.2006 (Пн) 17:17

Что, совпали, значения констант?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 88

    TopList