Bitmap/Read a PPM file: Difference between revisions
Content added Content deleted
(Added zkl) |
(Add Nimrod) |
||
Line 784: | Line 784: | ||
return image |
return image |
||
end</lang> |
end</lang> |
||
=={{header|Nimrod}}== |
|||
<lang nimrod>proc readPPM(f: TFile): Image = |
|||
if f.readLine != "P6": |
|||
raise newException(E_base, "Invalid file format") |
|||
var line = "" |
|||
while f.readLine(line): |
|||
if line[0] != '#': |
|||
break |
|||
var parts = line.split(" ") |
|||
result = img(parseInt parts[0], parseInt parts[1]) |
|||
if f.readLine != "255": |
|||
raise newException(E_base, "Invalid file format") |
|||
var |
|||
arr: array[256, int8] |
|||
read = f.readBytes(arr, 0, 256) |
|||
pos = 0 |
|||
while read != 0: |
|||
for i in 0 .. < read: |
|||
case pos mod 3 |
|||
of 0: result.pixels[pos div 3].r = arr[i].uint8 |
|||
of 1: result.pixels[pos div 3].g = arr[i].uint8 |
|||
of 2: result.pixels[pos div 3].b = arr[i].uint8 |
|||
else: discard |
|||
inc pos |
|||
read = f.readBytes(arr, 0, 256)</lang> |
|||
=={{header|OCaml}}== |
=={{header|OCaml}}== |