forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Разложение изображения? (http://forum.boolean.name/showthread.php?t=19703)

Sashkakuhta 21.02.2015 10:11

Разложение изображения?
 
Кратко говоря, мне нужно получить "тот самый" эффект разложения изображения или расхождения цветовых каналов (Хочу того, сам не знаю чего). Меня хватило только на этот код:
PHP код:

Function decayimage(image,offset=0)

;
decayed image

Cls
DrawImage
(image,0,0)
Color 0,127,255
Plot 1
,2
Color 255
,127,0
Plot 2
,2
Flip                                                 
"Пробы" цветов
LockBuffer BackBuffer
()
argbmidred=ReadPixelFast(2,2)
argbmidblue=ReadPixelFast(1,2)
argbblack=ReadPixelFast(0,0)
For 
y=1 To ImageWidth(image)
For 
x=1 To ImageHeight(image)
argb=ReadPixelFast(x,y)
If 
Not argb=argbblack Or argb=argbmidred Or argb=argbmidblue
WritePixelFast x
-offset,y,argbmidred
WritePixelFast x
+offset,y,argbmidblue
WritePixelFast x
,y,ReadPixelFast(x,y)
End If
Next
Next
UnlockBuffer BackBuffer
()
End Function 

Этот код совсем не пригоден для использования в риалтайме, и работает неправильно с изображениями где мало черного цвета. Есть у кого нормальные альтернативы?

Arton 21.02.2015 16:44

Ответ: Разложение изображения?
 
Ты работаешь с 2D, работай с текстурой, 2D в Блице тормоз.

Цитата:

Сообщение от Sashkakuhta (Сообщение 293407)
Есть у кого нормальные альтернативы?

Дохлый Xors3D.

KCEPOKC 21.02.2015 17:40

Ответ: Разложение изображения?
 
Предлагаю заранее разложить текстуру в *редакторнейм*. Блитцы, как подметил Arton, с этим хорошо не справятся.

Sashkakuhta 22.02.2015 07:03

Ответ: Разложение изображения?
 
Копну в сторону текстур, но вариант с заранее разложенной текстурой мне не подходит - коду нужно обрабатывать кучу изображений, которые каждый раз будут разные.

moka 22.02.2015 07:07

Ответ: Разложение изображения?
 
Шейдеры.

impersonalis 24.02.2015 16:55

Ответ: Разложение изображения?
 
Код:

For y=1 To ImageWidth(image)
For x=1 To ImageHeight(image)

--->
Код:

For y=0 To ImageWidth(image)-1
For x=0 To ImageHeight(image)-1

и в аналогичных местах

Sashkakuhta 26.02.2015 16:25

Ответ: Разложение изображения?
 
Да, уже сам заметил ошибку, но зачем -1?

SBJoker 26.02.2015 16:31

Ответ: Разложение изображения?
 
Потому что адресация с нуля


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot