Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > Полезные функции

Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново...

Ответ
 
Опции темы
Старый 27.07.2006, 18:36   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Сообщение Скачка и загузка картинки

Картинка скачивается в память и на основе полученной информации создаётся image-объект Blitz-а. Без всяких свопов на винт (виндовые в расчёт не берём).
Graphics 640,480,32,2 
SetBuffer BackBuffer() 

Image = LoadBMPImage("http://mariusrabung.ma.funpic.de/Temp/TestImage.bmp") 

DrawImage Image,0,0 
Flip 
WaitKey 
EndGraphics 
End 


Function LoadBMPImage(Url$) 

Local bfType% 
Local bfSize% 
Local bfReserved% 
Local bfOffBits% 

Local biSize% 
Local biWidth% 
Local biHeight% 
Local biPlanes% 
Local biBitCount% 
Local biCompression% 
Local biSizeImage% 
Local biXPelsPerMeter% 
Local biYPelsPerMeter% 
Local biClrUsed% 
Local biClrImportant% 

Local biMaskRed% 
Local biMaskGreen% 
Local biMaskBlue% 

Local biDown% 

Local ClrTable%[256] 


Local host$, host_tmp 

 host$=right(Url$,len(Url$)-7)             ; http:// rausschneiden 
 host_tmp=instr(host$,"/")-1               ; Das erste Slash im String suchen und 1 abziehen 
 host$=left(host$,host_tmp)                ; Den Text bis zu dem ersten Slash-1 k?rzen 

Local stream=opentcpstream(host$,80) 

WriteLine stream, "GET "+url$ 
WriteLine stream, "Host: "+host$ 
WriteLine stream, "" 

;----------------------- Bitmap Header 
bfType%          = ReadShort(stream) 
bfSize%          = ReadInt(stream) 
bfReserved%      = ReadInt(stream) 
bfOffBits%       = ReadInt(stream) 
;----------------------- 
If bfType% <> 19778 Then RuntimeError("Error: File ist not a valid Windows Bitmap(.bmp)") 
;----------------------- Bitmap InfoHeader 
biSize%          = ReadInt(stream) 
biWidth%         = ReadInt(stream) 
biHeight%        = ReadInt(stream) 
biPlanes%        = ReadShort(stream) 
biBitCount%      = ReadShort(stream) 
biCompression%   = ReadInt(stream) 
biSizeImage%     = ReadInt(stream) 
biXPelsPerMeter% = ReadInt(stream) 
biYPelsPerMeter% = ReadInt(stream) 
biClrUsed%       = ReadInt(stream) 
biClrImportant%  = ReadInt(stream) 

If biHeight%>0 Then biDown%=0 
If biHeight%<0 Then biDown%=1 
;---------------------- evt. Farbmasken 
If biCompression%=3 Then 
 biMaskBlue%     = ReadInt(stream) 
 biMaskGreen%    = ReadInt(stream) 
 biMaskBlue%     = ReadInt(stream) 
EndIf 
;---------------------- FarbTabellen 
If biClrUsed%=0 Then 
 If biBitCount%=1 Or biBitCount%=4 Or biBitCount%=8 Then 
   For tmp=0 To 2^biBitCount% 
     ClrTable[tmp] = ReadInt(stream);Byte(stream)+ReadByte(stream)+ReadByte(stream)+ReadByte(stream) 
   Next    
 EndIf 
EndIf 
;---------------------- BildDaten 
Local img=CreateImage( biWidth%,biHeight% ) 
SetBuffer ImageBuffer(img) 

;Print clrtable[0] 
;Print clrtable[1] 
;Print clrtable[2] 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 
;Print ReadByte(stream) 

;Print biCompression% 
;Print biBitCount% 
;Print biDown% 
;Print biHeight% 
;Print biclrUsed% 
;Print biclrimportant% 

If biCompression%=0 Then  ; BI-RGB 
 If biBitCount% = 1 Then 
   If biDown% = 0 Then 
    For tmp2=biHeight% To 0 Step -1 
    For tmp=0 To biWidth% ;Step -1 
     pixel=readbyte(stream) 
     LockBuffer ImageBuffer(img) 
      If pixel<>0 Then WritePixelFast tmp,tmp2,$FFFFFF 
      If pixel=0   Then WritePixelFast tmp,tmp2,$000000  
     UnlockBuffer ImageBuffer(img) 
      
    Next 
   Next 
  ElseIf biDown%=1 Then 
   For tmp2=0 To biHeight% 
    For tmp=0 To biWidth% 
     pixel=readbyte(stream) 
     LockBuffer ImageBuffer(img) 
      If pixel<>0 Then WritePixelFast tmp,tmp2,$FFFFFF 
      If pixel=0   Then WritePixelFast tmp,tmp2,$000000 
     UnlockBuffer ImageBuffer(img)    
    Next 
   Next 
  EndIf 
 ElseIf biBitCount% = 4 
  
 ElseIf biBitCount% = 8 
  
 ElseIf biBitCount% = 16 
  
 ElseIf biBitCount% = 24 Then 
  If biDown% = 0 Then 
   For tmp2=biHeight% To 0 Step -1 
    For tmp=0 To biWidth% 
     blue=ReadByte(stream) 
     green=ReadByte(stream) 
     red=Readbyte(stream) 
    ;Color red,green,blue 
     LockBuffer ImageBuffer(img) 
      rgb=255*$1000000 + red*$10000 + green*$100 + blue 
      WritePixelFast tmp,tmp2,rgb 
     UnlockBuffer ImageBuffer(img) 
     ;Plot tmp,tmp2 
    Next 
   Next 
  ElseIf biDown%=1 Then 
   For tmp2=0 To biHeight% 
    For tmp=0 To biWidth% 
     blue=ReadByte(stream) 
     green=ReadByte(stream) 
     red=Readbyte(stream) 
     ;Color red,green,blue 
      LockBuffer ImageBuffer(img) 
      rgb=255*$1000000 + red*$10000 + green*$100 + blue 
      WritePixelFast tmp,tmp2,rgb 
      UnlockBuffer ImageBuffer(img)    
     ;Plot tmp,tmp2 
    Next 
   Next 
  EndIf 
 ElseIf BiBitCount% = 32 
  
 Endif  
ElseIf biCompression%=1 ; BI-RLE8 

ElseIf biCompression%=2 ; BI-RLE4 

ElseIf biCompression%=3 ; BI-BITFIELD 

EndIf 


SetBuffer BackBuffer() 

Return img 
CloseTCPStream stream 
End Function
Код взят от сюда:
http://www.freecoder.chat-blitz.de/
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.07.2006, 18:49   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Скачка и загузка картинки

Подозреваю, что всё-таки имелось в виду:

CloseTCPStream stream 
Return img 
End Function
задал вопрос автору. жду ответа =)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 27.07.2006, 21:17   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Скачка и загузка картинки

Я оказался прав )
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Весёлые картинки =) Chrono Syndrome Юмор 5214 11.05.2022 23:43
Примечательные изображения jimon Юмор 2961 23.10.2020 20:00
Сохранение 2D картинки Fant 2D-программирование 10 10.02.2008 15:59
Поворот картинки BaD RaNDoM 2D-программирование 7 15.01.2008 21:45
так, картинки всякие... Felis_rufus Работы 14 13.02.2007 01:45


Часовой пояс GMT +4, время: 20:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com