Category:Action! Bitmap tools: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 8:
 
The following module contains definition of grayscale image.
 
<lang Action!>MODULE
 
Line 60 ⟶ 59:
 
The following module contains definition of RGB color image.
 
<lang Action!>MODULE
 
Line 160 ⟶ 158:
ptr.b=c.b
FI
RETURN
 
MODULE</lang>
 
----
 
=== RGBLINE.ACT ===
 
The following module contains implementation of Bresenham's algorithm for drawing line on RGB color image.
<lang Action!>MODULE
 
INCLUDE "H6:RGBIMAGE.ACT" ;from task Bitmap
 
PROC RgbLine(RgbImage POINTER img
INT x1,y1,x2,y2 RGB POINTER c)
INT dx,dy,sx,sy,err,e2
 
IF x1>x2 THEN dx=x1-x2
ELSE dx=x2-x1 FI
 
IF y1>y2 THEN dy=y1-y2
ELSE dy=y2-y1 FI
 
IF x1<x2 THEN sx=1
ELSE sx=-1 FI
 
IF y1<y2 THEN sy=1
ELSE sy=-1 FI
 
IF dx>dy THEN err=dx/2
ELSE err=-dy/2 FI
 
DO
SetRgbPixel(img,x1,y1,c)
IF x1=x2 AND y1=y2 THEN
EXIT
FI
e2=err
IF e2>-dx THEN
err==-dy
x1==+sx
FI
IF e2<dy THEN
err==+dx
y1==+sy
FI
OD
RETURN
 
Line 169 ⟶ 214:
 
The following module is designed for loading images in PPM format version 5 (grayscale, binary).
 
<lang Action!>MODULE
 
Anonymous user