Изменение размера картинки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Алабай
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.05.2005 (Сб) 16:04

Изменение размера картинки

Сообщение Алабай » 02.04.2006 (Вс) 17:01

Давно не писал на Бэйсике, ща решил попробовать. Появились опять вопросы.
Я пишу программу, которая открывает jpg картинку, и, если размер картинки больше 1024х768, то enabe'иться кнопка уменьшения файла. Дело в том, что картинку надо уменьшить (и сохранить), а у меня уменьшался холст.
Как правильно уменьшить размер изображения?
ПС, я юзал библиотеку: SAVTOJPG.DLL для сохранения jpg.
Запостю проект, исходник, там бред правда... вот что значит не программировал год. :pale:
Если можно, то покажите примерчик или исправьте мой :oops: .
Вложения
PictureResize.rar
Изменение размера изображения.
(168.34 Кб) Скачиваний: 229

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 02.04.2006 (Вс) 19:13

Попробуй BitBlt

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 02.04.2006 (Вс) 19:16

Или StretchBlt
Salus populi suprema lex

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

Сообщение BV » 02.04.2006 (Вс) 19:34

После StretchBlt советую обработать изображение этим.
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;

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 02.04.2006 (Вс) 19:50

to BV
Однако, я не читал тот топик, хороший пример :wink:
Salus populi suprema lex

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

Сообщение BV » 02.04.2006 (Вс) 20:43

Спасибо.

А этот топик ты читал?
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;

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 03.04.2006 (Пн) 9:07


dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 03.04.2006 (Пн) 18:01

to Nicky да
to BV нет. Посмотрел... Полезная штука, однако, респект :D
Salus populi suprema lex

Алабай
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.05.2005 (Сб) 16:04

Сообщение Алабай » 03.04.2006 (Пн) 19:22

2 Nicky да.
Использование BitBlt - тут

Я из поиска нашел эту фразу, обрадовался, что есть инфа по BitBlt, а она бац и обратно меня на поиск =( обидно...

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

Сообщение alibek » 03.04.2006 (Пн) 19:27

MSDN
Либо используй функцию PaintPicture.
Lasciate ogni speranza, voi ch'entrate.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 04.04.2006 (Вт) 6:27

Алабай писал(а):
Использование BitBlt - тут

Я из поиска нашел эту фразу, обрадовался, что есть инфа по BitBlt, а она бац и обратно меня на поиск =( обидно...


Вообще-то я про "чудо-обертку" by tyomitch

Алабай
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.05.2005 (Сб) 16:04

Сообщение Алабай » 04.04.2006 (Вт) 19:32

эхх, не нашел инфы, че такое "чудо-обертка" by tyomitch...
А кто-нить мой проект смотрел? Че там мона поправить?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.04.2006 (Вт) 20:29


Rodriggess
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 27.03.2006 (Пн) 12:04
Откуда: Êèåâ

Сообщение Rodriggess » 05.04.2006 (Ср) 14:49

Amed писал(а):http://bbs.vbstreets.ru/viewtopic.php?t=23735

Ñîãëàñåí

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

Сообщение alibek » 05.04.2006 (Ср) 14:55

Rodriggess, замечание за флуд, пока устное.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 05.04.2006 (Ср) 14:57

Rodriggess - интеллектуальный бот? :o
Если да - хочу исходники.
Быть... или не быть. Вот. В чём вопрос?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.04.2006 (Ср) 15:22

uhm писал(а):Rodriggess - интеллектуальный бот? :o
Если да - хочу исходники.

Согласен

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 05.04.2006 (Ср) 15:23

:lol:
Быть... или не быть. Вот. В чём вопрос?

Алабай
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.05.2005 (Сб) 16:04

Сообщение Алабай » 06.04.2006 (Чт) 13:43

Amed
Там нету именно инфы. Вот допустим как с помощью этой библиотеки можно уменьшить картинку?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.04.2006 (Чт) 14:27

Алабай писал(а):Amed
Там нету именно инфы. Вот допустим как с помощью этой библиотеки можно уменьшить картинку?

Какой "этой"?
Изображение

Алабай
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 21.05.2005 (Сб) 16:04

Сообщение Алабай » 06.04.2006 (Чт) 19:42

tyomitch
GDI+.dll

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

Сообщение BV » 06.04.2006 (Чт) 19:48

2 Алабай

Для уменьшения изображения GDIPlus не нужен. Для этого есть StretchBlt из GDI32. Как пользоваться? Поиск по форуму.

И хочу напомнить - GDIPlus есть далеко не у всех.
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;

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.04.2006 (Чт) 19:56

Алабай писал(а):tyomitch
GDI+.dll

См. http://bbs.vbstreets.ru/viewtopic.php?p=153922#153922

BV писал(а):2 Алабай

Для уменьшения изображения GDIPlus не нужен. Для этого есть StretchBlt из GDI32. Как пользоваться? Поиск по форуму.

И хочу напомнить - GDIPlus есть далеко не у всех.

Хочу напомнить -- он встроен начиная с WinXP, которая вышла пять лет назад. И поставляется с кучей разных продуктов, включая Офис 2003.
А конкретно ревнителям всеобщей совместимости хочу напомнить, что Винда вообще есть далеко не у всех. Пусть пишут под дос ;-)
Последний раз редактировалось tyomitch 06.04.2006 (Чт) 20:02, всего редактировалось 2 раз(а).
Изображение

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 06.04.2006 (Чт) 19:58

2 Алабай
Если не знаешь как пользоваться StretchBlt, скачай мой(ну почти) справочник по WinApi функциям на русском из раздела "Народная литература"
Salus populi suprema lex

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

Сообщение BV » 06.04.2006 (Чт) 20:04

tyomitch писал(а):Хочу напомнить -- он встроен начиная с WinXP, которая вышла пять лет назад.


Перефразирую - "Хочу напомнить - он есть только в последней версии Windows, на всех остальных чихать." :evil:
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;

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 06.04.2006 (Чт) 21:00

Что мешает установить эту билиотеку на другие версии? :roll:
Если всё делать своими ручками, они скоро отвалятся !

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.04.2006 (Чт) 21:06

BV писал(а):
tyomitch писал(а):Хочу напомнить -- он встроен начиная с WinXP, которая вышла пять лет назад.


Перефразирую - "Хочу напомнить - он есть только в последней версии Windows, на всех остальных чихать." :evil:


А что, 2003 Server не в счёт?
Изображение


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

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 56

    TopList