Colour bars/Display: Difference between revisions

m
size of picture adjusted
m (→‎{{header|Phix}}: simplified)
m (size of picture adjusted)
 
(33 intermediate revisions by 14 users not shown)
Line 16:
::::::*   white
<br>
 
=={{header|6502 Assembly}}==
Implemented using Easy6502, this displays a pinstripe using the system palette. There are 16 colors, and the bottom 4 bits of A are the color index.
<syntaxhighlight lang="6502asm">lda #0
tax
tay ;clear regs
 
;video ram on Easy6502 is four pages ranging from $0200-$0500
 
loop:
sta $0200,x
sta $0220,x
sta $0240,x
sta $0260,x
sta $0280,x
sta $02A0,x
sta $02C0,x
sta $02E0,x
 
sta $0300,x
sta $0320,x
sta $0340,x
sta $0360,x
sta $0380,x
sta $03A0,x
sta $03C0,x
sta $03E0,x
 
sta $0400,x
sta $0420,x
sta $0440,x
sta $0460,x
sta $0480,x
sta $04A0,x
sta $04C0,x
sta $04E0,x
 
sta $0500,x
sta $0520,x
sta $0540,x
sta $0560,x
sta $0580,x
sta $05A0,x
sta $05C0,x
sta $05E0,x
 
inx
txa ;effectively increment A
cpx #$20 ;32 columns of video memory
beq exit
jmp loop
exit:
brk ;on easy6502 this terminates a program. </syntaxhighlight>
 
 
 
=={{header|Action!}}==
<syntaxhighlight lang="action!">PROC Main()
BYTE
i,
CH=$02FC, ;Internal hardware value for last key pressed
PALNTSC=$D014, ;To check if PAL or NTSC system is used
PCOLR0=$02C0,PCOLR1=$02C1,
PCOLR2=$02C2,PCOLR3=$02C3,
COLOR0=$02C4,COLOR1=$02C5,
COLOR2=$02C6,COLOR3=$02C7,
COLOR4=$02C8
Graphics(10)
PCOLR0=$04 ;gray
PCOLR1=$00 ;black
IF PALNTSC=15 THEN
PCOLR2=$42 ;red for NTSC
PCOLR3=$C6 ;green for NTSC
COLOR0=$84 ;blue for NTSC
COLOR1=$66 ;magenta for NTSC
COLOR2=$A6 ;cyan for NTSC
COLOR3=$FC ;yellow for NTSC
ELSE
PCOLR2=$22 ;red for PAL
PCOLR3=$B6 ;green for PAL
COLOR0=$74 ;blue for PAL
COLOR1=$48 ;magenta for PAL
COLOR2=$96 ;cyan for PAL
COLOR3=$EC ;yellow for PAL
FI
COLOR4=$0F ;white
 
FOR i=0 TO 79
DO
Color=i/10+1
Plot(i,0)
DrawTo(i,191)
OD
 
DO UNTIL CH#$FF OD
CH=$FF
RETURN</syntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Colour_bars_display.png Screenshot from Atari 8-bit computer]
 
=={{header|ActionScript}}==
<syntaxhighlight lang="actionscript3">
<lang ActionScript3>
package {
Line 48 ⟶ 148:
}
</syntaxhighlight>
</lang>
 
=={{header|Ada}}==
{{libheader|SDLAda}}
<langsyntaxhighlight Adalang="ada">with SDL.Video.Windows.Makers;
with SDL.Video.Renderers.Makers;
with SDL.Video.Palettes;
Line 100 ⟶ 200:
Window.Finalize;
SDL.Finalise;
end Colour_Bars_Display;</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
{{libheader|GDI+}} (available at http://www.autohotkey.net/~tic/Gdip.ahk)
<langsyntaxhighlight AutoHotkeylang="autohotkey">#SingleInstance, Force
#NoEnv
SetBatchLines, -1
Line 196 ⟶ 296:
Gdip_Shutdown(pToken)
ExitApp
Return</langsyntaxhighlight>
 
=={{header|AWK}}==
<langsyntaxhighlight lang="awk">
BEGIN {
nrcolors = 8
Line 213 ⟶ 313:
}
}
</syntaxhighlight>
</lang>
 
=={{header|BASIC}}==
 
==={{header|AmigaBASIC}}===
<syntaxhighlight lang="amigabasic">SCREEN 1,320,200,5,1
 
<lang amigabasic>SCREEN 1,320,200,5,1
WINDOW 2,"Color bars",(0,10)-(297,186),15,1
FOR a=0 TO 300
LINE (a,0)-(a,186),(a+10)/10
NEXT
loop: GOTO loop</langsyntaxhighlight>
 
==={{header|Applesoft BASIC}}===
<langsyntaxhighlight ApplesoftBasiclang="applesoftbasic">1 DATA1,12,6,3,14,13,15
2 HOME : GR : FOR I = 1 TO 7
3 READ C(I) : NEXT
4 FOR I = 0 TO 39
5 COLOR= C(I / 5)
6 VLIN 0,39 AT I : NEXT</langsyntaxhighlight>
 
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
<langsyntaxhighlight lang="bbcbasic"> SW_MAXIMIZE = 3
SYS "ShowWindow", @hwnd%, SW_MAXIMIZE
VDU 26
Line 255 ⟶ 353:
RECTANGLE FILL C%*W%, 0, W%, H%
NEXT
</syntaxhighlight>
</lang>
 
==={{header|Chipmunk Basic}}===
The sequence of colors.
<syntaxhighlight lang="basic">
100 rem Colour bars/Display
110 graphics 0 : graphics cls
120 for i = 0 to 7
130 read r,g,b
140 graphics color r,g,b
150 for j = 0 to 79
160 x = i*80+j
170 graphics moveto x,0
180 graphics lineto x,399
190 next j
200 next i
500 data 0,0,0 : rem black
510 data 100,0,0 : rem red
520 data 0,100,0 : rem green
530 data 0,0,100 : rem blue
540 data 100,0,100 : rem magenta
550 data 0,100,100 : rem cyan
560 data 100,100,0 : rem yellow
570 data 100,100,100 : rem white
</syntaxhighlight>
 
==={{header|Commodore BASIC}}===
 
This task achieved only on Commodore computers with color capabilities. The example below tested as-is in VICE on the following machines:
* Commodore 64
Line 265 ⟶ 386:
* Commodore CBM-II (with VIC-II video)
* Commodore SX-64
 
 
It will also work well on the VIC-20 if you either omit line 310 or comment (REM) it out as the VIC-20 has only an eight-color palette.
Line 271 ⟶ 391:
This cross-compatibility is achieved by using the PETSCII control codes (CHR$(x)) for changing color, which are generally the same across all platforms, although the system palettes themselves may differ. This is combined with printing a "reverse video" space (solid block) character in the color selected.
 
<langsyntaxhighlight lang="gwbasic">5 rem color bars program
10 print chr$(147);:dim co(17):c=1
20 read co(c):if co(c)>0 then c=c+1:goto 20
Line 291 ⟶ 411:
305 rem omit or rem the next line for vic-20
310 data 129,149,150,151,152,153,154,155
320 data 0:rem data terminato</langsyntaxhighlight>
 
==={{header|FreeBASIC}}===
<syntaxhighlight lang="freebasic">' FB 1.05.0 Win64
 
' Draw the color bars on an 80 x 25 console using the system palette of 16 colors
' i.e. 5 columns per color
Width 80, 25
Shell "cls"
Locate ,, 0 '' turn cursor off
For clr As UInteger = 0 To 15
Color 0, clr
For row As Integer = 1 to 25
Locate row, clr * 5 + 1
Print Space(5);
Next row
Next clr
 
Sleep
' restore default settings
Locate ,, 1 '' turn cursor on
Color 7, 0 '' white text on black background</syntaxhighlight>
 
==={{header|FutureBasic}}===
[[File:ColorBarsDisplayFB300.png|right]]
<syntaxhighlight lang="futurebasic">
void local fn DoIt
long index, x = 0
CFArrayRef colors = @[fn ColorBlack,fn ColorRed,
fn ColorGreen,fn ColorBlue,fn ColorMagenta,
fn ColorCyan,fn ColorYellow,fn ColorWhite]
window 1, @"Color bars/Display", (0,0,480,270), NSWindowStyleMaskTitled
pen -1
for index = 0 to len(colors) - 1
rect fill (x,0,60,270), colors[index]
x += 60
next
end fn
 
fn DoIt
 
HandleEvents
</syntaxhighlight>
 
==={{header|Gambas}}===
<syntaxhighlight lang="gambas">Public Sub Form_Open()
Dim iColour As Integer[] = [Color.Black, Color.red, Color.Green, Color.Magenta, Color.Cyan, Color.Yellow, Color.white]
Dim hPanel As Panel
Dim siCount As Short
 
With Me
.Arrangement = Arrange.Horizontal
.Height = 300
.Width = 400
End With
 
For siCount = 0 To 6
hpanel = New Panel(Me)
hpanel.Expand = True
hpanel.H = 500
HPanel.Background = iColour[siCount]
Next
 
End</syntaxhighlight>
 
==={{header|IS-BASIC}}===
<syntaxhighlight lang="is-basic">100 GRAPHICS LORES 16
110 SET PALETTE BLACK,RED,GREEN,BLUE,MAGENTA,CYAN,YELLOW,WHITE
120 FOR I=1 TO 7
130 CALL BAR(I)
140 NEXT
150 DEF BAR(C)
160 SET INK C
170 PLOT C*160,0;C*160,719;C*160+152,719;C*160+152,0;C*160,0
180 PLOT C*160+16,16,PAINT
190 END DEF</syntaxhighlight>
 
==={{header|Liberty BASIC}}===
<langsyntaxhighlight lang="lb">nomainwin
colors$="black red green blue pink cyan yellow white"
WindowWidth=DisplayWidth:WindowHeight=DisplayHeight
Line 314 ⟶ 511:
wait
[quit] close #main:end
</langsyntaxhighlight>
 
==={{header|Locomotive Basic}}===
 
[[File:CPC color bars.png|thumb|right]]
 
Show the default MODE 0 palette (includes two blinking colors at the end):
<syntaxhighlight lang="locobasic">10 MODE 0:BORDER 23
 
<lang locobasic>10 MODE 0:BORDER 23
20 FOR x=0 TO 15
30 ORIGIN x*40,0
40 FOR z=0 TO 39 STEP 4:MOVE z,0:DRAW z,400,x:NEXT z
50 NEXT x
60 CALL &bb06 ' wait for key press</langsyntaxhighlight>
 
==={{header|PureBasic}}===
Press Enter or Escape to exit the program.
<langsyntaxhighlight PureBasiclang="purebasic">Dim color(7)
color(0) = RGB($00, $00, $00) ;black
color(1) = RGB($FF, $00, $00) ;red
Line 361 ⟶ 555:
Until KeyboardPushed(#PB_Key_Escape) Or KeyboardPushed(#PB_Key_Return)
CloseScreen()
EndIf</langsyntaxhighlight>
====Alternate method using console====
<langsyntaxhighlight PureBasiclang="purebasic">DataSection
;Black, Red, Green, Blue, Magenta, Cyan, Yellow, White
Data.i 0, 12, 10, 9, 13, 11, 14, 15
Line 386 ⟶ 580:
ConsoleTitle("Press ENTER to exit"): Input()
CloseConsole()
EndIf</langsyntaxhighlight>
 
==={{header|Run BASIC}}===
<langsyntaxhighlight lang="runbasic">colors$ = "black,red,green,blue,magenta,cyan,yellow,white"
html "<TABLE BORDER=1 CELLPADDING=0 CELLSPACING=4><tr height=70>"
for i = 1 to 8
html "<td width=20 bgcolor='";word$(colors$,i,",");"'</td>"
next i
html "</tr></table>"</langsyntaxhighlight>
<pre>Output</pre>
 
[[File:ColorBarRunBasic.png]]
 
==={{header|SmileBASIC}}===
<syntaxhighlight lang="smilebasic">FOR I=0 TO 7
READ R,G,B
GFILL I*50,0,I*50+49,239,RGB(R,G,B)
NEXT
REPEAT UNTIL BUTTON(0) AND #B
 
DATA 0,0,0
DATA 255,0,0
DATA 0,255,0
DATA 0,0,255
DATA 255,0,255
DATA 0,255,255
DATA 255,255,0
DATA 255,255,255</syntaxhighlight>
 
==={{header|TI Basic}}===
<LANGsyntaxhighlight lang="basic">100 REM SMPTE Format Color Bars
110 REM with 400 Hz reference tone
120 CALL CLEAR
Line 443 ⟶ 653:
540 NEXT I
590 RETURN
</syntaxhighlight>
</LANG>
 
==={{header|ZX Spectrum Basic}}===
<langsyntaxhighlight lang="zxbasic">10 REM The ZX Spectrum display is 32 columns wide, so we have 8 columns of 4 spaces
20 FOR r=0 TO 20: REM There are 21 rows
30 FOR c=0 TO 7: REM We use the native colour sequence here
Line 453 ⟶ 663:
60 NEXT c
70 REM at this point the cursor has wrapped, so we don't need a newline
80 NEXT r</langsyntaxhighlight>
 
=={{header|Befunge}}==
Assuming a terminal with support for ANSI escape sequences, this fills the screen with the colour sequence: black, red, green, blue, magenta, cyan, yellow and white. It then waits for the user to press ''Enter'' before terminating.
<langsyntaxhighlight lang="befunge"><v%"P": <<*"(2"
v_:"P"/"["39*,, :55+/68v
v,,,";1H" ,+*86%+55 ,+*<
73654210v,,\,,,*93"[4m"<
>$:55+%#v_:1-"P"%55+/3g^
39*,,,~@>48*,1-:#v_$"m["</langsyntaxhighlight>
 
=={{header|C}}==
Line 469 ⟶ 679:
===Text Mode===
The required functions and structures are in conio.h
<syntaxhighlight lang="c">
<lang C>
#include<conio.h>
 
Line 502 ⟶ 712:
return 0;
}
</syntaxhighlight>
</lang>
 
===Graphics Mode===
The required functions and structures are in graphics.h, conio.h is included for getch().
<syntaxhighlight lang="c">
<lang C>
#include<graphics.h>
#include<conio.h>
Line 529 ⟶ 739:
return 0;
}
</syntaxhighlight>
</lang>
 
=={{header|C++}}==
Line 536 ⟶ 746:
file <code>colorbars.h</code>:
 
<langsyntaxhighlight lang="cpp">#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
Line 553 ⟶ 763:
const int colornumber ;
} ;
#endif</langsyntaxhighlight>
 
file <code>colorbars.cpp</code>:
 
<langsyntaxhighlight lang="cpp">#include <QtGui>
#include "colorbars.h"
 
Line 583 ⟶ 793:
xstart += rectwidth + 1 ;
}
}</langsyntaxhighlight>
 
file <code>main.cpp</code>:
 
<langsyntaxhighlight lang="cpp">#include <QApplication>
#include "colorbars.h"
 
Line 596 ⟶ 806:
window.show( ) ;
return app.exec( ) ;
}</langsyntaxhighlight>
 
=={{header|COBOL}}==
{{works with|OpenCOBOL}}
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. terminal-colour-bars.
 
Line 651 ⟶ 861:
 
GOBACK
.</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
==={{header|ncurses}}===
To interface the ncurses C library from Lisp, the ''croatoan'' library is used.
<langsyntaxhighlight lang="lisp">(defun color-bars ()
(with-screen (scr :input-blocking t :input-echoing nil :cursor-visible nil)
(dotimes (i (height scr))
Line 664 ⟶ 874:
(refresh scr)
;; wait for keypress
(get-char scr)))</langsyntaxhighlight>
=={{header|Delphi}}==
{{libheader| Winapi.Windows}}
Line 671 ⟶ 881:
{{libheader| Vcl.Graphics}}
{{libheader| Vcl.Forms}}
<syntaxhighlight lang="delphi">
<lang Delphi>
unit Colour_barsDisplay;
 
Line 720 ⟶ 930:
Invalidate;
end;
end.</langsyntaxhighlight>
Form resource:
<syntaxhighlight lang="delphi">
<lang Delphi>
object fmColourBar: TfmColourBar
Caption = 'fmColourBar'
Line 729 ⟶ 939:
OnResize = FormResize
end
</syntaxhighlight>
</lang>
 
=={{header|EasyLang}}==
 
[https://easylang.dev/show/#cod=TYyxCoAwDET3fsWNKqjpmMEvKZ1KhUK1UER/34uTQ7i7l0tSqyFiQ4CIQDmiHFF6pacyKzW6hz3PxoqaTyS7dHvrKMZxtR8GzHBnsXz5aHfGgwlDwQw/Qoz2nC5SvnWLewE= Run it]
[https://easylang.online/apps/_color_bars.html Run it]
 
<syntaxhighlight lang="text">
<lang easyprog.online>col[] = [ 000 900 090 909 099 990 999 ]
col[] = [ 000 900 090 009 909 099 990 999 ]
w = 100.0 / len col[]
forw i= range100 / len col[]
for i set_color= 1 to len col[i]
move_pen w *color col[i 0]
move w * (i - 1) 0
draw_rect w 100
rect w 100
.</lang>
.
</syntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">USING: accessors colors.constants kernel math sequences ui
ui.gadgets ui.gadgets.tracks ui.pens.solid ;
IN: rosetta-code.colour-bars-display
Line 766 ⟶ 978:
"bars" open-window
] with-ui ;
MAIN: colors</langsyntaxhighlight>
 
=={{header|Forth}}==
Line 772 ⟶ 984:
<br> The color bars are shown in Society of Motion Picture and Television Engineers (SMPTE) order.
 
<syntaxhighlight lang="forth">
<lang CAMEL99 Forth>
\ Color Bars for TI-99 CAMEL99 Forth
 
Line 837 ⟶ 1,049:
 
CR .( Done. Type BARS to run)
</syntaxhighlight>
</LANG>
 
=={{header|FreeBASIC}}==
<lang freebasic>' FB 1.05.0 Win64
 
' Draw the color bars on an 80 x 25 console using the system palette of 16 colors
' i.e. 5 columns per color
Width 80, 25
Shell "cls"
Locate ,, 0 '' turn cursor off
For clr As UInteger = 0 To 15
Color 0, clr
For row As Integer = 1 to 25
Locate row, clr * 5 + 1
Print Space(5);
Next row
Next clr
 
Sleep
' restore default settings
Locate ,, 1 '' turn cursor on
Color 7, 0 '' white text on black background</lang>
 
=={{header|Gambas}}==
<lang gambas>Public Sub Form_Open()
Dim iColour As Integer[] = [Color.Black, Color.red, Color.Green, Color.Magenta, Color.Cyan, Color.Yellow, Color.white]
Dim hPanel As Panel
Dim siCount As Short
 
With Me
.Arrangement = Arrange.Horizontal
.Height = 300
.Width = 400
End With
 
For siCount = 0 To 6
hpanel = New Panel(Me)
hpanel.Expand = True
hpanel.H = 500
HPanel.Background = iColour[siCount]
Next
 
End</lang>
 
=={{header|Go}}==
{{libheader|Go Graphics}}
<langsyntaxhighlight lang="go">package main
 
import "github.com/fogleman/gg"
Line 912 ⟶ 1,082:
drawBars(dc)
dc.SavePNG("color_bars.png")
}</langsyntaxhighlight>
 
{{out}}
Line 923 ⟶ 1,093:
Terminal-based version.
 
<langsyntaxhighlight lang="haskell">#!/usr/bin/env stack
-- stack --resolver lts-7.0 --install-ghc runghc --package vty -- -threaded
 
Line 943 ⟶ 1,113:
where attrs = map color2attr colors
nBars = length colors
colors = [black, brightRed, brightGreen, brightBlue, brightMagenta, brightCyan, brightYellow, brightWhite]
color2attr c = Attr Default Default (SetTo c)
 
main :: IO ()
main = do
cfg <- standardIOConfig
Line 960 ⟶ 1,131:
_ -> return ()
showBars bounds
shutdown vty</langsyntaxhighlight>
 
[[File:Haskell_Colourbars_A_0.png|700px]]
 
Graphical version using SFML.
 
<langsyntaxhighlight lang="haskell">-- Before you can install the SFML Haskell library, you need to install
-- the CSFML C library. (For example, "brew install csfml" on OS X.)
 
Line 1,014 ⟶ 1,187:
withResource (createRenderWindow vMode "color bars" wStyle Nothing) $
\wnd -> withResources (mapM (makeBar $ barSize vMode) $ zip colors [0..]) $
\bars -> loop wnd bars</langsyntaxhighlight>
 
=={{header|Icon}} and {{header|Unicon}}==
The procedure below is generalized to take a description of a ''test card'' and display it.
[[File:Colourbars_Simple_Unicon.png|thumb|right]]
<langsyntaxhighlight Iconlang="icon">link graphics,printf
procedure main() # generalized colour bars
Line 1,055 ⟶ 1,228:
bar(width) ] ),
band(height) ])
end</langsyntaxhighlight>
 
The following example is a wee tiny bit more interesting.
[[File:Colourbars_SMPTE_Unicon.png|thumb|right]]
<langsyntaxhighlight Iconlang="icon">procedure SMPTE_TestCard() #: return structure with 480i(ish) testcard
return testcard(,"SMPTE TV Test Card",width := 672,height := 504,
[ band( 1, [ bar( 1, "#c0c0c0"),
Line 1,087 ⟶ 1,260:
bar(width) ] ),
band(height) ])
end</langsyntaxhighlight>
 
{{libheader|Icon Programming Library}}
Line 1,095 ⟶ 1,268:
=={{header|J}}==
 
<langsyntaxhighlight lang="j"> load 'viewmat'
size=: 2{.".wd'qm' NB. J6
size=: getscreenwh_jgtk_ '' NB. J7
'rgb'viewmat (|.size){. (>.&.(%&160)|.size)$ 20# 256#.255*#:i.8</langsyntaxhighlight>
 
Note: You need to pick an implementation of <code>size</code> based on the version of J you are using.
 
=={{header|Java}}==
<langsyntaxhighlight lang="java">
import java.awt.Color;
import java.awt.Graphics;
Line 1,132 ⟶ 1,305:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Julia}}==
{{works with|Julia|0.6}}
 
<langsyntaxhighlight lang="julia">using Images
 
colors = [colorant"black", colorant"red", colorant"green", colorant"darkblue",
Line 1,147 ⟶ 1,320:
img[:, j:j+wcol] = col
end
save("data/colourbars.jpg", img)</langsyntaxhighlight>
 
=={{header|Kotlin}}==
{{trans|Java}}
<langsyntaxhighlight lang="scala">import java.awt.Color
import java.awt.Graphics
import javax.swing.JFrame
Line 1,175 ⟶ 1,348:
fun main(args: Array<String>) {
ColorFrame(400, 400)
}</langsyntaxhighlight>
Editing Babbage problem
 
=={{header|Lua}}==
{{libheader|nw}}
{{libheader|cairo}}
<syntaxhighlight lang="lua">local nw = require("nw")
local app = nw:app()
local cw, ch = 320, 240
local win = app:window(cw, ch, "Color Bars", false)
local colors = {{0,0,0}, {1,0,0}, {0,1,0}, {0,0,1}, {1,0,1}, {0,1,1}, {1,1,0}, {1,1,1}}
local unpack = unpack or table.unpack -- polyfill 5.2 vs 5.3
function win:repaint()
local cr = win:bitmap():cairo()
for i = 1, #colors do
cr:rectangle((i-1)*cw/#colors, 0, cw/#colors, ch)
cr:rgb(unpack(colors[i]))
cr:fill()
end
end
win:show()
app:run()</syntaxhighlight>
 
=={{header|M2000 Interpreter}}==
Calling a module can be done by using name or call name. The later used for recursive call. Here we use it for beautify the code.
<syntaxhighlight lang="m2000 interpreter">
<lang M2000 Interpreter>
Module Checkit {
Module Bars {
Line 1,204 ⟶ 1,397:
}
Checkit
</syntaxhighlight>
</lang>
 
=={{header|Maple}}==
<syntaxhighlight lang="maple">
<lang Maple>
with(plottools):
plots:-display([rectangle([0, 0], [.3, 2.1], color = black), rectangle([.3, 0], [.6, 2.1], color = red), rectangle([.6, 0], [.9, 2.1], color = green), rectangle([.9, 0], [1.2, 2.1], color = magenta), rectangle([1.2, 0], [1.5, 2.1], color = cyan), rectangle([1.5, 0], [1.8, 2.1], color = white), rectangle([1.8, 0], [2.1, 2.1], color = yellow)])
</syntaxhighlight>
</lang>
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
 
<langsyntaxhighlight lang="mathematica">ArrayPlot[
ConstantArray[{Black, Red, Green, Blue, Magenta, Cyan, Yellow,
White}, 5]]</langsyntaxhighlight>
 
[[File:ColourBarsMathematica.png]]
Line 1,222 ⟶ 1,415:
=={{header|Nim}}==
{{libheader|gintro}}
<langsyntaxhighlight Nimlang="nim">import gintro/[glib, gobject, gtk, gio, cairo]
 
const
Line 1,279 ⟶ 1,472:
let app = newApplication(Application, "Rosetta.ColorBars")
discard app.connect("activate", activate)
discard app.run()</langsyntaxhighlight>
 
=={{header|OCaml}}==
 
<langsyntaxhighlight lang="ocaml">open Graphics
 
let round x =
Line 1,302 ⟶ 1,495:
) colors;
ignore (read_key ());
;;</langsyntaxhighlight>
 
execute with:
Line 1,308 ⟶ 1,501:
 
=={{header|Perl}}==
<syntaxhighlight lang="perl">use strict;
<lang Perl>#!/usr/bin/perl -w
use strict warnings;
use GD ;
 
my %colors = ( white => [ 255 , 255 , 255 ] , red => [255 , 0 , 0 ] ,
white => [255,255,255], red green => [255, 0 0, 255 0], green => [ 0,255, ] 0], blue => [ 0 0, 0 , 255 ] ,
magenta => [255, 0,255], magentayellow => [ 255 ,255, 0 0], 255cyan ] => [ 0,255,255], yellowblack => [ 255 0, 255 0, 0 ] ,);
 
cyan => [ 0 , 255 , 255 ] , black => [ 0 , 0 , 0 ] ) ;
my $barwidthstart = 160 / 8= 0;
my $imagebarwidth = new GD::Image( 160 , 100 )/ 8;
my $startimage = 0GD::Image->new( 160 , 100 );
 
foreach my $rgb ( values %colors ) {
for my $rgb ( values %colors ) {
my $paintcolor = $image->colorAllocate( @$rgb ) ;
$image->filledRectangle( $start * $barwidth , 0 , $start * $barwidth +
$barwidth - 1 , 99 , $paintcolorimage->colorAllocate( @$rgb ) );
$start++ ;
}
open ( DISPLAY , ">" , "testprogrambars.png" ) ||or die ;
binmode DISPLAY ;
print DISPLAY $image->png ;
close DISPLAY ;#to be watched with <image viewer> testprogram.png</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/pGUI}}
<!--<syntaxhighlight lang="phix">(phixonline)-->
<lang Phix>-- demo\rosetta\Colour_bars.exw
<span style="color: #000080;font-style:italic;">-- demo\rosetta\Colour_bars.exw</span>
include pGUI.e
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
 
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
constant colours = {CD_BLACK, CD_RED, CD_GREEN, CD_BLUE, CD_MAGENTA, CD_CYAN, CD_YELLOW, CD_WHITE}
 
<span style="color: #008080;">constant</span> <span style="color: #000000;">colours</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #004600;">CD_BLACK</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_RED</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_GREEN</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_BLUE</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_MAGENTA</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_CYAN</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_YELLOW</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_WHITE</span><span style="color: #0000FF;">}</span>
Ihandle dlg, canvas
cdCanvas cdcanvas
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">dlg</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">canvas</span>
 
<span style="color: #004080;">cdCanvas</span> <span style="color: #000000;">cdcanvas</span>
function redraw_cb(Ihandle /*ih*/, integer /*posx*/, /*posy*/)
integer {width, height} = IupGetIntInt(canvas, "DRAWSIZE"),
<span style="color: #008080;">function</span> <span style="color: #000000;">redraw_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000080;font-style:italic;">/*posx*/</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">/*posy*/</span><span style="color: #0000FF;">)</span>
x = 0, lc = length(colours)
<span style="color: #004080;">integer</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">width</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">height</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupGetIntInt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"DRAWSIZE"</span><span style="color: #0000FF;">),</span>
cdCanvasActivate(cdcanvas)
<span style="color: #000000;">x</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">lc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">colours</span><span style="color: #0000FF;">)</span>
for i=1 to lc do
<span style="color: #7060A8;">cdCanvasActivate</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cdcanvas</span><span style="color: #0000FF;">)</span>
integer w = floor((width-x)/(lc-i+1))
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">lc</span> <span style="color: #008080;">do</span>
cdCanvasSetForeground(cdcanvas, colours[i])
<span style="color: #004080;">integer</span> <span style="color: #000000;">w</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">width</span><span style="color: #0000FF;">-</span><span style="color: #000000;">x</span><span style="color: #0000FF;">)/(</span><span style="color: #000000;">lc</span><span style="color: #0000FF;">-</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">))</span>
cdCanvasBox(cdcanvas, x, x+w, 0, height)
<span style="color: #7060A8;">cdCanvasSetForeground</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cdcanvas</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">colours</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">])</span>
x += w
<span style="color: #7060A8;">cdCanvasBox</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cdcanvas</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">x</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">x</span><span style="color: #0000FF;">+</span><span style="color: #000000;">w</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">height</span><span style="color: #0000FF;">)</span>
end for
<span style="color: #000000;">x</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">w</span>
cdCanvasFlush(cdcanvas)
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
return IUP_DEFAULT
<span style="color: #7060A8;">cdCanvasFlush</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cdcanvas</span><span style="color: #0000FF;">)</span>
end function
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_DEFAULT</span>
 
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
IupOpen()
canvas = IupCanvas(Icallback("redraw_cb"),"RASTERSIZE=600x400") -- initial size
<span style="color: #7060A8;">IupOpen</span><span style="color: #0000FF;">()</span>
dlg = IupDialog(canvas,`TITLE="Colour bars"`)
<span style="color: #000000;">canvas</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupCanvas</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"redraw_cb"</span><span style="color: #0000FF;">),</span><span style="color: #008000;">"RASTERSIZE=600x400"</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- initial size</span>
IupMap(dlg)
<span style="color: #000000;">dlg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupDialog</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span><span style="color: #008000;">`TITLE="Colour bars"`</span><span style="color: #0000FF;">)</span>
cdcanvas = cdCreateCanvas(CD_IUP, canvas)
<span style="color: #7060A8;">IupMap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
IupShow(dlg)
<span style="color: #000000;">cdcanvas</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">cdCreateCanvas</span><span style="color: #0000FF;">(</span><span style="color: #004600;">CD_IUP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">canvas</span><span style="color: #0000FF;">)</span>
IupSetAttribute(canvas, "RASTERSIZE", NULL) -- release the minimum limitation
<span style="color: #7060A8;">IupShow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
IupMainLoop()
<span style="color: #7060A8;">IupSetAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"RASTERSIZE"</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">NULL</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- release the minimum limitation</span>
IupClose()</lang>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">IupMainLoop</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<!--</syntaxhighlight>-->
 
=={{header|PHP}}==
{{trans|Perl}}
Will output result directly to the browser. Use it as CGI/BIN script.
<langsyntaxhighlight PHPlang="php"><?php
$colors = array(array( 0, 0, 0), // black
array(255, 0, 0), // red
Line 1,391 ⟶ 1,589:
header('Content-type:image/png');
imagepng($image);
imagedestroy($image);</langsyntaxhighlight>
 
Alternately, with HTML output:
 
<langsyntaxhighlight PHPlang="php"><?php
$colors = array(
"000000", // black
Line 1,411 ⟶ 1,609:
echo '<td style="background-color: #'.$color.'; height: 100px; width: 20px;"></td>';
}
echo '</tr></table>';</langsyntaxhighlight>
 
=={{header|PicoLisp}}==
{{trans|UNIX Shell}}
<langsyntaxhighlight PicoLisplang="picolisp">(call 'clear)
 
(let Width (in '(tput cols) (read))
Line 1,424 ⟶ 1,622:
(prinl) ) )
 
(call 'tput 'sgr0) # reset</langsyntaxhighlight>
 
=={{header|Plain English}}==
<langsyntaxhighlight lang="plainenglish">To run:
Start up.
Clear the screen.
Line 1,455 ⟶ 1,653:
Draw the bar using the cyan color and move it over.
Draw the bar using the yellow color and move it over.
Draw and fill the bar using the white color.</langsyntaxhighlight>
 
=={{header|PowerShell}}==
<syntaxhighlight lang="powershell">
<lang PowerShell>
[string[]]$colors = "Black" , "DarkBlue" , "DarkGreen" , "DarkCyan",
"DarkRed" , "DarkMagenta", "DarkYellow", "Gray",
Line 1,473 ⟶ 1,671:
Write-Host
}
</syntaxhighlight>
</lang>
 
=={{header|Processing}}==
<langsyntaxhighlight lang="processing">fullScreen();
noStroke();
color[] cs = {
Line 1,490 ⟶ 1,688:
fill(cs[i]);
rect(i*width/8,0,width/8,height);
}</langsyntaxhighlight>
 
=={{header|Python}}==
<syntaxhighlight lang="python">
<lang Python>
#!/usr/bin/env python
#vertical coloured stripes in window in Python 2.7.1
Line 1,513 ⟶ 1,711:
 
end_graphics()
</syntaxhighlight>
</lang>
 
=={{header|R}}==
Create the color palette, set margins to zero so the image will fill the display, and use image to create the graphic:
[[File:ColorBarR.png|thumb|right]]
<syntaxhighlight lang="r">
<lang R>
pal <- c("black", "red", "green", "blue", "magenta", "cyan", "yellow", "white")
par(mar = rep(0, 4))
image(matrix(1:8), col = pal, axes = FALSE)
</syntaxhighlight>
</lang>
 
=={{header|Racket}}==
 
<syntaxhighlight lang="racket">
<lang Racket>
#lang racket/gui
 
Line 1,551 ⟶ 1,749:
 
(void (new full-frame%))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2018.10}}
<syntaxhighlight lang="raku" perl6line>my ($x,$y) = 1280, 720;
 
my @colors = map -> $r, $g, $b { Buf.new: |(($r, $g, $b) xx $x div 8) },
Line 1,583 ⟶ 1,781:
}
 
$img.close;</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 1,594 ⟶ 1,792:
Programming note: &nbsp; because of the way the REXX interpreters &nbsp; (being used for this example) &nbsp; ensure screen output fidelity, &nbsp; if ninety characters are displayed on a ninety-byte wide screen, &nbsp; REXX apparently forces an extra blank, &nbsp; causing to what appears to be a blank line after the line displayed. &nbsp; Because of this, &nbsp; the last color bar &nbsp; ('''_.8''') &nbsp; has been shortened by one byte.
 
<langsyntaxhighlight lang="rexx">/*REXX program displays eight colored vertical bars on a full screen. */
parse value scrsize() with sd sw . /*the screen depth and width. */
barWidth=sw%8 /*calculate the bar width. */
Line 1,619 ⟶ 1,817:
say $ /*have REXX display line of bars. */
end /*k*/ /* [↑] Note: SD could be zero. */
/*stick a fork in it, we're done. */</langsyntaxhighlight>
This REXX program makes use of &nbsp; '''scrsize''' &nbsp; REXX program (or BIF) which is used to determine the screen size of the terminal (console).
 
Line 1,627 ⟶ 1,825:
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
load "guilib.ring"
 
Line 1,687 ⟶ 1,885:
}
label1 { setpicture(p1) show() }
</syntaxhighlight>
</lang>
Output :
[https://lh3.googleusercontent.com/-_y0FSmg0NAs/V1xBPvGV2tI/AAAAAAAAAKk/TXYSJnpdZ346aQLd05yE9vLM8V9lEht1QCLcB/s1600/CalmoSoftColourBars.jpg Colour bars]
Line 1,695 ⟶ 1,893:
{{libheader|JRubyArt}}
JRubyArt is a port of Processing to the ruby language
<langsyntaxhighlight lang="ruby">
# Array of web colors black, red, green, blue, magenta, cyan, yellow, white
PALETTE = %w[#000000 #ff0000 #00ff00 #0000ff #ff00ff #00ffff #ffffff].freeze
Line 1,709 ⟶ 1,907:
end
end
</syntaxhighlight>
</lang>
 
=={{header|Rust}}==
Line 1,715 ⟶ 1,913:
{{libheader|pixels}}
renders into a borderless fullscreen window on the primary display. press ESC to close
<langsyntaxhighlight lang="rust">use pixels::{Pixels, SurfaceTexture}; // 0.2.0
use winit::event::*; // 0.24.0
use winit::event_loop::{ControlFlow, EventLoop};
Line 1,761 ⟶ 1,959:
}
});
}</langsyntaxhighlight>
 
=={{header|Scala}}==
<langsyntaxhighlight lang="scala">import java.awt.Color
import scala.swing._
 
Line 1,779 ⟶ 1,977:
}
}
}</langsyntaxhighlight>
Open window:
[[File:colorbars_scala.png|thumb|right]]
<langsyntaxhighlight lang="scala">new MainFrame(){
title="Color bars"
visible=true
preferredSize=new Dimension(640, 320)
contents=new ColorBars()
}</langsyntaxhighlight>
 
=={{header|Sidef}}==
{{trans|Perl}}
<langsyntaxhighlight lang="ruby">require('GD');
 
var colors = Hash.new(
Line 1,814 ⟶ 2,012:
};
 
%f'colorbars.png'.open('>:raw').print(image.png);</langsyntaxhighlight>
 
=={{header|SmileBASIC}}==
<lang smilebasic>FOR I=0 TO 7
READ R,G,B
GFILL I*50,0,I*50+49,239,RGB(R,G,B)
NEXT
REPEAT UNTIL BUTTON(0) AND #B
 
DATA 0,0,0
DATA 255,0,0
DATA 0,255,0
DATA 0,0,255
DATA 255,0,255
DATA 0,255,255
DATA 255,255,0
DATA 255,255,255</lang>
 
=={{header|Tcl}}==
{{libheader|Tk}}
<langsyntaxhighlight lang="tcl">package require Tcl 8.5
package require Tk 8.5
 
Line 1,845 ⟶ 2,027:
-fill [lindex $colors 0] -outline {}
set colors [list {*}[lrange $colors 1 end] [lindex $colors 0]]
}</langsyntaxhighlight>
 
=={{header|UNIX Shell}}==
<langsyntaxhighlight lang="sh">#!/bin/sh
clear
WIDTH=`tput cols`
Line 1,871 ⟶ 2,053:
done
 
tput sgr0 # reset</langsyntaxhighlight>
 
=={{header|Uxntal}}==
<syntaxhighlight lang="uxntal">( uxnasm color-bars.tal color-bars.rom && uxnemu color-bars.rom )
 
|00 @System &vector $2 &expansion $2 &wst $1 &rst $1 &metadata $2 &r $2 &g $2 &b $2 &debug $1 &state $1
|20 @Screen &vector $2 &width $2 &height $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1
 
|0100
( set 4 color theme
rgb
color0: 000 - black
color1: f00 - red
color2: 0f0 - green
color3: 00f - blue )
#0f00 .System/r DEO2
#00f0 .System/g DEO2
#000f .System/b DEO2
 
( store bars width )
.Screen/width DEI2 #0004 DIV2 ,&quarter STR2
( set starting position )
#0000 .Screen/y DEO2
 
( draw bars )
#00
&loop
#00 OVR [ LIT2 &quarter $2 ] MUL2
.Screen/x DEO2
DUP #80 ORA .Screen/pixel DEO
INC DUP #04 NEQ ?&loop
BRK</syntaxhighlight>
[[File:Color-bars.png|alt=Color bars task implemented in Uxntal.|thumb|Color bars task implemented in Uxntal.|none]]
=={{header|Wren}}==
{{trans|Go}}
{{libheader|DOME}}
<langsyntaxhighlight ecmascriptlang="wren">import "graphics" for Canvas, Color
import "dome" for Window
 
Line 1,910 ⟶ 2,123:
 
static draw(dt) {}
}</langsyntaxhighlight>
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\codes; \intrinsic code declarations
int W, X0, X1, Y, C;
[SetVid($13); \320x200x8 graphics
Line 1,924 ⟶ 2,137:
C:= ChIn(1); \wait for keystroke
SetVid(3); \restore normal text mode
]</langsyntaxhighlight>
 
{{omit from|Axe}}
{{omit from|GUISS}}
{{omit from|Minimal BASIC}}
 
[[Category:Test card]]
5

edits