| 发表于:2007-11-08 10:51:19 楼主 |
dim pic(5000, 5000, 3) as byte dim pix as byte dim pic1(9000, 9000, 3) as byte dim w as long dim h as long private sub command1_click() '读图象 commondialog1.filter = "pictures(*.bmp) |*.bmp " commondialog1.showopen open commondialog1.filename for binary as #1 get #1, 19, w: get #1, 23, h: seek #1, 55 for j = h - 1 to 0 step -1 for i = 0 to w - 1 for k = 2 to 0 step -1 get #1, , pic(i, j, k) next k next i if w * 3 mod 4 <> 0 then for k = 1 to 4 - ((w * 3) mod 4) get #1, , pix next k end if next j close #1 end sub private sub command2_click() '显示图象 for j = 0 to h - 1 for i = 0 to w - 1 picture1.pset (i, j), rgb(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2)) next i next j end sub private sub command3_click() '放大图象,n是放大倍数 picture1.cls n = val(text1.text) for i = 0 to h * n - 1 step n for j = 0 to w * n - 1 step n for l = 0 to n - 1 pic1(j + l, i / n, 0) = (pic(j / n, i / n, 0) * l / n + pic(j / n + 1, i / n, 0) * (1 - l / n)) pic1(j + l, i / n, 1) = (pic(j / n, i / n, 1) * l / n + pic(j / n + 1, i / n, 1) * (1 - l / n)) pic1(j + l, i / n, 2) = (pic(j / n, i / n, 2) * l / n + pic(j / n + 1, i / n, 2) * (1 - l / n)) picture1.pset (j + l, i), rgb(pic(j / n, i / n, 0) * l / n + pic(j / n + 1, i / n, 0) * (1 - l / n), pic(j / n, i / n, 1) * l / n + pic(j / n + 1, i / n, 1) * (1 - l / n), pic(j / n, i / n, 2) * l / n + pic(j / n + 1, i / n, 2) * (1 - l / n)) next l next j next i for i = 0 to w * n - 1 for j = 0 to h * n - 1 step n for l = 0 to n - 1 rr = pic1(i, j / n, 0) * l / n + pic1(i, j / n + 1, 0) * (1 - l / n) gg = pic1(i, j / n, 1) * l / n + pic1(i, j / n + 1, 1) * (1 - l / n) bb = pic1(i, j / n, 2) * l / n + pic1(i, j / n + 1, 2) * (1 - l / n) picture1.pset (i, j + l), rgb(rr, gg, bb) next l next j next i end sub |
|
|
|
|