Слияние кода завершено, страница обновится автоматически
//++++++++++++++++++++++++++++++++++++++++
//Fighting for great,share generate value!
//Build the best soft by golang,let's go!
//++++++++++++++++++++++++++++++++++++++++
//Author:ShirDon <http://www.shirdon.com>
//Email:hcbsts@163.com; 823923263@qq.com
//++++++++++++++++++++++++++++++++++++++++
package captchas_with_go
//ImageFilterManager
type ImageFilterManager struct {
filters []ImageFilter
}
func init() {
RegisterImageFilter(IMAGE_FILTER_NOISE_LINE, imageFilterNoiseLineCreator)
RegisterImageFilter(IMAGE_FILTER_NOISE_POINT, imageFilterNoisePointCreator)
RegisterImageFilter(IMAGE_FILTER_STRIKE, imageFilterStrikeCreator)
}
func CreateImageFilterManager() *ImageFilterManager {
ret := new(ImageFilterManager)
ret.filters = []ImageFilter{}
return ret
}
func (manager *ImageFilterManager) AddFilter(filter ImageFilter) {
manager.filters = append(manager.filters, filter)
}
func (manager *ImageFilterManager) GetFilters() []ImageFilter {
return manager.filters
}
func CreateImageFilterManagerByConfig(config *FilterConfig) *ImageFilterManager {
mgr := new(ImageFilterManager)
mgr.filters = []ImageFilter{}
for _, cfgId := range config.Filters {
creator, has := imageFilterCreators[cfgId]
if !has {
continue
}
cfgGroup, has := config.GetGroup(cfgId)
if !has {
continue
}
mgr.AddFilter(creator(cfgGroup))
}
return mgr
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )