Draw a pixel

From Rosetta Code
Task
Draw a pixel
You are encouraged to solve this task according to the task description, using any language you may know.
Task

Create a window and draw a pixel in it, subject to the following:

  1.  the window is 320 x 240
  2.  the color of the pixel must be red (255,0,0)
  3.  the position of the pixel is x = 100, y = 100


BASIC256[edit]

It seems that the program should be this. And the BASIC256 tutorial programs work on my ubuntu system. This program neither draws the pixel nor resizes the window. Can't see anything when I plot many spots. Oh well. I've tried the rgb(255,0,0) function as well as the fastgraphics/refresh statements.

 
rem http://rosettacode.org/wiki/Draw_a_pixel
 
graphsize 320, 240
color red
plot 100, 100
 

C[edit]

Requires the WinBGIm library.

 
/*Abhishek Ghosh, 12th June 2018*/
 
#include<graphics.h>
 
int main()
{
initwindow(320,240,"Red Pixel");
 
putpixel(100,100,RED);
 
getch();
 
return 0;
}
 

FreeBASIC[edit]

' version 27-06-2018
' compile with: fbc -s console
' or: fbc -s gui
 
Screen 13 ' Screen 18: 320x200, 8bit colordepth
'ScreenRes 320, 200, 24 ' Screenres: 320x200, 24bit colordepth
 
If ScreenPtr = 0 Then
Print "Error setting video mode!"
End
End If
 
Dim As UInteger depth, x = 100, y = 100
 
' what is color depth
ScreenInfo ,,depth
 
If depth = 8 Then
PSet(x, y), 40 ' palette, index 40 = RGB(255, 0, 0)
Else
PSet(x, y), RGB(255, 0, 0) ' red
End If
 
' empty keyboard buffer
While Inkey <> "" : Wend
WindowTitle IIf(depth = 8, "Palette","True Color") + ", hit any key to end program"
Sleep
End

Go[edit]

package main
 
import (
"fmt"
"image"
"image/color"
"image/draw"
)
 
func main() {
rect := image.Rect(0, 0, 320, 240)
img := image.NewRGBA(rect)
 
// Use green background, say.
green := color.RGBA{0, 255, 0, 255}
draw.Draw(img, rect, &image.Uniform{green}, image.ZP, draw.Src)
 
// Set color of pixel at (100, 100) to red
red := color.RGBA{255, 0, 0, 255}
img.Set(100, 100, red)
 
// Check it worked.
cmap := map[color.Color]string{green: "green", red: "red"}
c1 := img.At(0, 0)
c2 := img.At(100, 100)
fmt.Println("The color of the pixel at ( 0, 0) is", cmap[c1], "\b.")
fmt.Println("The color of the pixel at (100, 100) is", cmap[c2], "\b.")
}
Output:
The color of the pixel at (  0,   0) is green.
The color of the pixel at (100, 100) is red.

Kotlin[edit]

This task seems very similar to the Bitmap task and so therefore is the code to accomplish it.

// Version 1.2.41
 
import java.awt.Color
import java.awt.Graphics
import java.awt.image.BufferedImage
 
class BasicBitmapStorage(width: Int, height: Int) {
val image = BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR)
 
fun fill(c: Color) {
val g = image.graphics
g.color = c
g.fillRect(0, 0, image.width, image.height)
}
 
fun setPixel(x: Int, y: Int, c: Color) = image.setRGB(x, y, c.getRGB())
 
fun getPixel(x: Int, y: Int) = Color(image.getRGB(x, y))
}
 
fun main(args: Array<String>) {
val bbs = BasicBitmapStorage(320, 240)
with (bbs) {
fill(Color.white) // say
setPixel(100, 100, Color.red)
// check it worked
val c = getPixel(100, 100)
print("The color of the pixel at (100, 100) is ")
println(if (c == Color.red) "red" else "white")
}
}
Output:
The color of the pixel at (100, 100) is red

M2000 Interpreter[edit]

 
Module CheckIt {
Module PlotPixel (a as single, b as single) {
Move a*TwipsX, b*TwipsX
Draw TwipsX, TwipsY
}
Declare DrawPixelForm Form
Layer DrawPixelForm {
\\ 12 for 12pt fonts
\\ use ; to center window
Window 12, 320*twipsx, 240*twipsy;
Cls #333333
Pen Color(255,0,0) {
PlotPixel 100, 100
}
}
Method DrawPixelForm, "Show", 1
Declare DrawPixelForm Nothing
}
CheckIt
 

OutPut

Perl 6[edit]

Works with: Rakudo version 2018.05

Really? Draw a single pixel? Sigh.

use GTK::Simple;
use GTK::Simple::DrawingArea;
use Cairo;
 
my $app = GTK::Simple::App.new(:title('Draw a Pixel'));
my $da = GTK::Simple::DrawingArea.new;
gtk_simple_use_cairo;
 
$app.set-content( $da );
$app.border-width = 5;
$da.size-request(320,240);
 
sub rect-do( $d, $ctx ) {
given $ctx {
.rgb(1, 0, 0);
.rectangle(100, 100, 1, 1);
.fill;
}
}
 
my $ctx = $da.add-draw-handler( &rect-do );
$app.run;

Python[edit]

Works with: Python version 2.7.14
Library: PIL
from PIL import Image
 
img = Image.new('RGB', (320, 240))
pixels = img.load()
pixels[100,100] = (255,0,0)
img.show()
 

Racket[edit]

#lang racket
(require racket/draw)
(let ((b (make-object bitmap% 320 240)))
(send b set-argb-pixels 100 100 1 1 (bytes 255 0 0 255))
b)

Ring[edit]

# Project  : Draw a pixel
# Date  : 2018/05/16
# Author  : Gal Zsolt (~ CalmoSoft ~)
# Email  : <[email protected]>
 
load "guilib.ring"
 
new qapp {
win1 = new qwidget() {
setwindowtitle("Drawing Pixels")
setgeometry(100,100,320,240)
label1 = new qlabel(win1) {
setgeometry(10,10,300,200)
settext("")
}
new qpushbutton(win1) {
setgeometry(200,200,100,30)
settext("draw")
setclickevent("draw()")
}
show()
}
exec()
}
 
func draw()
p1 = new qpicture()
color = new qcolor() {
setrgb(255,0,0,255)
}
pen = new qpen() {
setcolor(color)
setwidth(5)
}
new qpainter() {
begin(p1)
setpen(pen)
drawpoint(100,100)
endpaint()
}
label1 { setpicture(p1) show() }

Output image: Draw a pixel

Scala[edit]

Scala idiom[edit]

A more Scalesque version could be with the use of its idiom:

Output:

Best experienced in your browser with Scastie (remote JVM).

import java.awt.image.BufferedImage
import java.awt.Color
 
object RgbBitmap extends App {
class RgbBitmap(val dim: (Int, Int)) {
def width = dim._1
def height = dim._2
 
private val image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR)
 
def apply(x: Int, y: Int) = new Color(image.getRGB(x, y))
 
def update(x: Int, y: Int, c: Color) = image.setRGB(x, y, c.getRGB)
 
def fill(c: Color) = {
val g = image.getGraphics
g.setColor(c)
g.fillRect(0, 0, width, height)
}
}
 
object RgbBitmap {
def apply(width: Int, height: Int) = new RgbBitmap(width, height)
}
 
 
/** Even Javanese style testing is still possible.
*/

private val img0 = new RgbBitmap(50, 60) { // Wrappers to enable adhoc Javanese style
def getPixel(x: Int, y: Int) = this(x, y)
def setPixel(x: Int, y: Int, c: Color) = this(x, y) = c
}
 
img0.fill(Color.CYAN)
img0.setPixel(5, 6, Color.BLUE)
// Testing in Java style
assert(img0.getPixel(0, 1) == Color.CYAN)
assert(img0.getPixel(5, 6) == Color.BLUE)
assert(img0.width == 50)
assert(img0.height == 60)
println("Tests successfully completed with no errors found.")
}