Changes

Creating images for the Amstrad

953 bytes added, 16:02, 16 August 2011
/* Sample Python program for conversion to SCR */
import struct
f = file("cpc3input.ppm", "r") # input filebinfile = open('bin3ouput.scr', 'wb') # output file
pal = [[0,0,0],[255,255,255]] # initial palette
for t in range(48):
binfile.write(data)
</pre>
 
Finally, here is a program for MODE 2. Input file must an ASCII P'''B'''M this time.
 
<pre>
# Transform PBM image to Amstrad SCR file (MODE 2)
# 2011-08-09
 
from numpy import *
import struct
f = file("input.pbm", "r")
binfile = open('output.scr', 'wb')
 
def byte_bin(x):
r=""
for n in range(7,-1,-1):
v=2**n
if x>=v:
x-=v
r+="1"
else:
r+="0"
return r
 
f.readline()
f.readline()
g = f.readline()
 
xdim, ydim = [int(q) for q in g.split()]
b=zeros((xdim,ydim))
 
x, y = 0, 0
 
while True:
g = f.readline()
if g=="": break
 
for q in g:
if q in ("0", "1"):
b[x,y] = int(q)
x+=1
if x==xdim:
x=0
y+=1
 
for cl in range(8): # line in character
for y in range(ydim/8):
for x in range(0,xdim,8):
oo = 0
for q in range(8):
if b[x+7-q,y*8+cl]==1:
oo += 2**q
data = struct.pack("B", oo)
binfile.write(data)
data = struct.pack("B", 0)
for t in range(48):
binfile.write(data)
 
binfile.close()
</pre>
1,544
edits