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

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

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > FAQ и уроки

Ответ
 
Опции темы
Старый 25.03.2009, 19:50   #1
Siarzhuk Piatrouski
Нуждающийся
 
Регистрация: 23.11.2007
Сообщений: 63
Написано 8 полезных сообщений
(для 7 пользователей)
Работа с изображениями

Может кому-нибудь пригодится, тулза ооочень простая (делал для своего друга, которому было влом вручную объединять парные изображения в кол-во 200 штук)

Что делает тулза - ищет файл с маской "TC", если находит, то генерит имя тоже самое, только с масками "T" и "T1", после чего на этапе сохранения проверяет если файл с маской "T" и объединяет изображения в файле с маской "T1". Выглядит сложным, но это утилита была написана за 10 минут. (сначала думал использовать Bah.cairo)

rem
Аўтар:СяржукПятроўскі
endrem

SuperStrict
Framework
brl.d3d7max2d
Importbrl.blitz
Importbrl.FileSystem
Importbrl.stream
Importbrl.linkedlist
Importbrl.pixmap
Importbrl.jpgloader
Importbrl.basic
Importbrl.retro

rem
Переменные
end
rem
Globalt:String,appCommandLine:String[10]
Globaldir:Int=ReadDir(CurrentDir())
IfNotdirRuntimeError"Failedtoreadcurrentdirectory"
ForappCommandLine:String[0]=EachInAppArgs
Next
'=============

rem
Список изображений

end
rem
GlobalTImagesList:TList=NewTList
Type
TImages
Fieldname:String
FieldnameTC:String,nameT:String,nameT1:String

' Подготовка списка
Methodprepare()
IfRight:String(StripAll(Self.name),2)="TC"
Self.nameTC=Self.name
Self.nameT=Replace:String(Self.nameTC,"TC","T")
Self.nameT1=Replace:String(Self.nameTC,"TC","T1")
EndIf
EndMethod

' Сохранение в формате JPEG, если в коммандной строке указано было качество 1-100, иначе с качеством 95
Methodsave(quality:Int=95)
LocalqualityMethod:Int,imgWidth:Int,imgHeight:Int

If(FileSize(Self.nameTC)>0)And(FileSize(Self.nameT)>0)
qualityMethod=quality
IfqualityMethod=0ThenqualityMethod=95
Localimg1:TPixmap=LoadPixmap(Self.nameTC)
imgWidth=PixmapWidth(img1:TPixmap)
imgHeight=PixmapHeight(img1:TPixmap)
Localimg2:TPixmap=LoadPixmap(Self.nameT)
LocalimgFinal:TPixmap=CreatePixmap(imgWidth,imgHeight*2,PF_RGB888)
imgfinal.Paste(img1,0,0)
imgfinal.Paste(img2,0,imgHeight)
IfFileSize(Self.nameT1)=-1
SavePixmapJPeg(imgfinal,Self.nameT1,qualityMethod)
EndIf
img1=Null
img2=Null
imgFinal=Null
EndIf
EndMethod
EndType
'=============

rem
Подготовить список изображений

end
rem
Functionprepare()
ForLocalimg:TImages=EachInTImagesList
img.prepare()
Next
EndFunction
'=============

rem
Созранить рисунки

end
rem
Functionsave(quality:Int)
ForLocalimg:TImages=EachInTImagesList
img.save(quality:Int)
Next
EndFunction
'=============

rem
Основной цикл
end
rem
Repeat
Localimg:TImages=NewTImages
TImagesList.AddLastimg
img.name=NextFile(dir)

Ifimg.name=""Exit
Ifimg.name="."Orimg.name=".."Continue
Forever
CloseDir
dir
'=============

prepare()
save(Int(appCommandLine:String[0]))


Шаноўнае спадарства, калі ўзніклі якія-небудзь пытаньні, якія зьвязаны з BlitzMax, дык мае рацыю спытаць мяне на форуме "эйкумены".

Шановні панстве, якщо виникли будь-які питання, звязані з BlitzMax, то спробуйте написати на форумі "эйкумены".
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с RMS Doctor Drive JAVA Micro Edition 1 15.07.2009 16:41
моя работа Trilliput Работы 7 10.01.2008 21:10
работа с RSS PHPman Основной форум 5 06.08.2007 00:04
Работа с изображениями andresyuk_be Основной форум 8 09.06.2007 16:34
Работа с БД Raiter Visual Basic 0 22.02.2007 16:45


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


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