Вопрос 2 Tyomitch :( о GDI +

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Вопрос 2 Tyomitch :( о GDI +

Сообщение ALX_2002 » 24.12.2004 (Пт) 14:23

К твоей чудообрётке GDI+ можно обратиться таким образом ?

:roll: 1) Указать файл рисунка
2) Сжать его по высоте и ширине
3) Выдать в виде потока

Если да, то мне ООООЧЕНЬ нужна твоя GDI+ :oops: :roll:

P.S Извиняюсь за личный вопр, знаю, что админы этого не одобряют. :oops:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.12.2004 (Пт) 16:21

Эээээ....
createimage("path").getthumbnailimage(x,y).savejpegtomemory :?:

http://mix.web.ur.ru/jpeg.zip
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 24.12.2004 (Пт) 16:23

1, 2. Да.
3. Что значит - "в виде потока"? IStream? можно.

[edit]GSerg, большое спасибо за скоростную поддержку! :-)[/edit]
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 17:58

Гут !!! Пашет - паааасиба.

P.S Был бы ты женского пола, расцеловал бы !!! :lol: :roll:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:01

Тока мне нуно через CreateObject :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.12.2004 (Вс) 18:03

Чё тя смущает?

with createobject("prjGDIplus.Global")
...
end with
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:06

Пасиб. Тока что и сам нашёл - по форуму :)

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:20

Хм... Всё равно не пашёт....

Код: Выделить всё
<%
Response.Contenttype="image/jpeg"

Set GDI = CreateObject("prjGDIPlus.Global")

GDI.Createimage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").getthumbnailimage 100,100

Response.binaryWrite результат

Set GDI=Nothing
%>



tyomitch - отец - подскажи, как считав файл и сделав его меньше дальше вернуть как данные, которые можно будет прописать через BinaryWrite ? :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.12.2004 (Вс) 18:23

:?

savejpegtomemory не ага?
Или сразу savetofile?
И чё это за странный способ возвращения результата?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:31

В кратце - я генерю изображение на странице

В странице 1.htm есть строка например так <IMG src="1.asp">, а

внутри 1.ASP

прописано Mime type="image\jpg"

Таким образом я возвращаю в IMG src= сформиированное

изображение

Но воть с ентой GDI+ чё то никак не соображу как заюзать :(

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

Сообщение tyomitch » 26.12.2004 (Вс) 18:32

ALX_2002, наверное надо так?
Код: Выделить всё
<%
Response.Contenttype="image/jpeg"

Set GDI = CreateObject("prjGDIPlus.Global")

GDI.CreateImage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").GetThumbnailImage(100,100).SaveToJpegToMemory результат

Response.binaryWrite результат

Set GDI=Nothing
%>


GSerg, способ возвращения результата самый нормальный ;-)
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:35

Ошибка выполнения Microsoft VBScript (0x800A01B6)
Объект не поддерживает это свойство или метод: 'GDI.Createimage(...).getthumbnailimage(...).jpegtomemory'
/download/new/2.asp, line 7

Код: Выделить всё
<%
Dim RES
Response.Contenttype="image/jpeg"

Set GDI = CreateObject("prjGDIPlus.Global")

RES = GDI.Createimage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").getthumbnailimage(100,100).savejpegtomemory

Set GDI=Nothing
%>
Последний раз редактировалось ALX_2002 26.12.2004 (Вс) 18:41, всего редактировалось 1 раз.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:36

Хорошо.... быть.... тупым.... подумал я :(

2 Tyomitch - У тебя ICQ есть ? :cry:

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

Сообщение tyomitch » 26.12.2004 (Вс) 18:46

Да не так! Не
Код: Выделить всё
RES = GDI.Createimage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").getthumbnailimage(100,100).savejpegtomemory
, а
Код: Выделить всё
GDI.CreateImage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").GetThumbnailImage(100,100).SaveToJpegToMemory RES

Ещё, там SaveToJpegToMemory (у тебя описка)
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 18:52

Ага. Я тож нашёл... Тока терь пишет несоответствие типа RES

Там BYTE надо подсовывать, а у меня VARIANT, т.к в я в ASP делаю...

Cbyte пробывал сделать - непомогло :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.12.2004 (Вс) 18:57

Гы-гы-гы...
Ну чё, будем tlb переэтывать? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение tyomitch » 26.12.2004 (Вс) 19:08

Я щас её перекомпилирую и выложу... Stay tuned :-)
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 26.12.2004 (Вс) 19:37

2 Tyomitch: Ух ! :shock: Это.... Типа спасибо.... Для меня ещё такого никто никогда не делал.... :oops: :D

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

Сообщение tyomitch » 26.12.2004 (Вс) 20:07

Выложил новую версию, вместе с примером использования, на http://mix.web.ur.ru/JPEG.zip .
Добавленная функция Image::SaveToJpegToMemoryVar возвращает байтовый массив в виде варианта.
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 27.12.2004 (Пн) 11:38

УРАА ! ПАСИБААА ! ОТЕЦ ! Я ТЕ ОБЯЗАН ! :shock: :D :!: :!: :!:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 27.12.2004 (Пн) 12:12

Да, ещё хотел узнать. Если я указываю ширину эскиза 100, а высоту мне надо подсчитать автоматически, то мне нужно это делать так ?

WIDTH=GDI.CreateImage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").width
HEIGHT=GDI.CreateImage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg").height

И считать H=(HEIGHT*100)/WIDTH и W=(WIDTH*100)/HEIGHT ?

Или там есть подсчёт автоматом ? :)

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

Сообщение tyomitch » 27.12.2004 (Пн) 16:40

Автоматом нету.
Делай 100 * (Image.Height / Image.Width)
т.е.
Код: Выделить всё
Dim i
Set i = GDI.CreateImage("C:\SERVER\DOWNLOAD\NEW\ws2003.jpg")
результат = i.GetThumbnailImage(100, 100 * i.Height / i.Width).SaveToJpegToMemoryVar
Изображение

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 28.12.2004 (Вт) 11:20

Усёк - всё пашет. Пасиба ещё раз громадное


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 9

    TopList