我有一个似九宫格图片,每次需要根据行列数读取对应的数字,但是有时眼睛看花,容易读错。所以自己写了个简单的网页输入行列,读取数字。
首先我有这样一个图片:
1.输入A1就要读出数字67。需求非常简单。首先我需要把这个图片做成HTML页面,里面的数字我需要能够直接读出来,图片里的代码难以读出。(什么图片识别技术,我就暂时用不上)
2.首先我就把里面的数字输入到一个文本文件里面。就叫做ViewGride.txt,里面的数据是这样的。
6748577677615854 1079888966756061 1354175760638369 7948107543901520 6472508913619370 6058164962329356 5981061809268345 4229645571169052 2012285204144233 9949569270985980 6988254252262991 8972989167786531 6675736128352066 5205554123525846 4345089397191380 |
模板页面:
<!-- Javascript goes in the document HEAD -->
<script type="text/javascript">
function altRows(id){
if(document.getElementsByTagName){
var table = document.getElementById(id);
var rows = table.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
if(i % 2 == 0){
rows[i].className = "evenrowcolor";
}else{
rows[i].className = "oddrowcolor";
}
}
}
}
window.οnlοad=function(){
altRows('alternatecolor');
}
function focusInput(obj){
if(obj.value=="A1 B4 H5")
{
obj.value = "";
}
obj.style.color="black";
}
var celArr = new Array();
var colorArr = new Array();
function submit()
{
var col = document.getElementById("col").value.toUpperCase();
var colArray = col.split(" ");
var tabObj = document.getElementById("alternatecolor");
if(celArr.length == 3)
{
for(var i=0; i<3; i++)
{
celArr[i].style.backgroundColor = colorArr[i];
}
}
var value = "";
if(colArray.length == 3)
{
for(var i=0; i<3; i++)
{
var val = colArray[i];
var row = val.substr(1);
var colValue = val.substr(0, 1);
var cel = tabObj.rows[row].cells[colValue.charCodeAt()-64];
celArr[i] = cel;
colorArr[i] = cel.style.backgroundColor;
cel.style.backgroundColor="#CCC";
value = value + cel.innerHTML + " ";
}
document.getElementById("content").innerHTML = value;
}
}
function funcKeyDown(e) {
if (e.keyCode == 13) {
submit();
}
}
</script>
<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<style type="text/css">
table.altrowstable {
font-family: verdana,arial,sans-serif;
font-size: 11px;
color: #333333;
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
table.altrowstable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.altrowstable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
.oddrowcolor {
background-color: #77C9FF;
}
.evenrowcolor {
background-color: #c3dde0;
}
input.inputclass {
width:150px;
color: #9C9C9C;
text-align: right;
}
.buttoncss {
font-family: "tahoma";
font-size:9pt; color: #003399;
border: 1px #003399 solid;
color:#006699;
border-bottom: #93bee2 1px solid;
border-left: #93bee2 1px solid;
border-right: #93bee2 1px solid;
border-top: #93bee2 1px solid;
background-color: #e8f4ff;
cursor: hand;
font-style: normal ;
width:60px;
height:22px;
}
.content {
font-weight:bold;
}
</style>
<body>
<table class="altrowstable" id="alternatecolor">
<span style="white-space:pre"> </span><!--此处用java代码读取数据源生成表格 -->
</table>
<input id="col" value="A1 B4 H5" class="inputclass" οnfοcus="focusInput(this)" οnkeydοwn="funcKeyDown(event)"/> <input id="submit" type="button" class="buttoncss" value="submit" οnclick="submit()"/>
<div id="content" class="content"></div>
</body>
</html>
java代码读取数据源生成表格,我是把HTML模板的上半部分(就是<table>及以上的)保存在head.txt里面,把下半部分(就是</table>及以下的)保存在end.txt里面。
import java.io.*;
public class GenerateViewCard
{
public static final String NAME = "ViewGride";
public static void main(String[] args) throws Exception
{
generate();
}
static void generate() throws Exception
{
String rootPath = "C:\\Users\\Administrator\\Desktop\\Card\\";
StringBuilder sb = new StringBuilder();
String header = readFile(rootPath+"head.txt");
String end = readFile(rootPath+"end.txt");
sb.append(header);
sb.append(getTh());
String source = readFile(rootPath+NAME+".txt");
sb.append(getSource(source));
sb.append(end);
System.out.println(sb.toString());
writeFile(rootPath+NAME+".html", sb.toString());
}
static String getSource(String source)
{
StringBuilder sb = new StringBuilder();
String[] sourceArray = source.split("\n");
for(int i=0; i<sourceArray.length; i++)
{
sb.append("\t\t\t<tr>\n");
sb.append("\t\t\t\t<td>").append((i+1)).append("</td>\n");
String lineStr = sourceArray[i];
for(int j=0; j<8; j++)
{
String key = lineStr.substring(j*2, (j+1)*2);
sb.append("\t\t\t\t<td>").append(key).append("</td>\n");
}
sb.append("\t\t\t</tr>\n");
}
return sb.toString();
}
static String getTh()
{
StringBuilder sb = new StringBuilder();
sb.append("\t\t\t<tr>\n");
sb.append("\t\t\t\t<th> </th>\n");
for(int i=0; i<8; i++)
{
sb.append("\t\t\t\t<th>").append((char)(65+i)).append("</th>\n");
}
sb.append("\t\t\t</tr>\n");
return sb.toString();
}
static String readFile(String fileName) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
String lineStr = null;
StringBuilder sb = new StringBuilder();
while((lineStr = reader.readLine()) != null)
{
lineStr = lineStr.replace("%s", NAME);
sb.append(lineStr+"\n");
}
reader.close();
return sb.toString();
}
static void writeFile(String fileName, String str) throws Exception
{
BufferedWriter write = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)));
write.write(str);
write.flush();
write.close();
}
}
然后就是生成ViewGride.html
<!-- Javascript goes in the document HEAD -->
<script type="text/javascript">
function altRows(id){
if(document.getElementsByTagName){
var table = document.getElementById(id);
var rows = table.getElementsByTagName("tr");
for(i = 0; i < rows.length; i++){
if(i % 2 == 0){
rows[i].className = "evenrowcolor";
}else{
rows[i].className = "oddrowcolor";
}
}
}
}
window.οnlοad=function(){
altRows('alternatecolor');
}
function focusInput(obj){
if(obj.value=="A1 B4 H5")
{
obj.value = "";
}
obj.style.color="black";
}
var celArr = new Array();
var colorArr = new Array();
function submit()
{
var col = document.getElementById("col").value.toUpperCase();
var colArray = col.split(" ");
var tabObj = document.getElementById("alternatecolor");
if(celArr.length == 3)
{
for(var i=0; i<3; i++)
{
celArr[i].style.backgroundColor = colorArr[i];
}
}
var value = "";
if(colArray.length == 3)
{
for(var i=0; i<3; i++)
{
var val = colArray[i];
var row = val.substr(1);
var colValue = val.substr(0, 1);
var cel = tabObj.rows[row].cells[colValue.charCodeAt()-64];
celArr[i] = cel;
colorArr[i] = cel.style.backgroundColor;
cel.style.backgroundColor="#CCC";
value = value + cel.innerHTML + " ";
}
document.getElementById("content").innerHTML = value;
}
}
function funcKeyDown(e) {
if (e.keyCode == 13) {
submit();
}
}
</script>
<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<style type="text/css">
table.altrowstable {
font-family: verdana,arial,sans-serif;
font-size: 11px;
color: #333333;
border-width: 1px;
border-color: #a9c6c9;
border-collapse: collapse;
}
table.altrowstable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.altrowstable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
.oddrowcolor {
background-color: #77C9FF;
}
.evenrowcolor {
background-color: #c3dde0;
}
input.inputclass {
width:150px;
color: #9C9C9C;
text-align: right;
}
.buttoncss {
font-family: "tahoma";
font-size:9pt; color: #003399;
border: 1px #003399 solid;
color:#006699;
border-bottom: #93bee2 1px solid;
border-left: #93bee2 1px solid;
border-right: #93bee2 1px solid;
border-top: #93bee2 1px solid;
background-color: #e8f4ff;
cursor: hand;
font-style: normal ;
width:60px;
height:22px;
}
.content {
font-weight:bold;
}
</style>
<body>
<table class="altrowstable" id="alternatecolor">
<tr>
<th> </th>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
<th>G</th>
<th>H</th>
</tr>
<tr>
<td>1</td>
<td>67</td>
<td>48</td>
<td>57</td>
<td>76</td>
<td>77</td>
<td>61</td>
<td>58</td>
<td>54</td>
</tr>
<tr>
<td>2</td>
<td>10</td>
<td>79</td>
<td>88</td>
<td>89</td>
<td>66</td>
<td>75</td>
<td>60</td>
<td>61</td>
</tr>
<tr>
<td>3</td>
<td>13</td>
<td>54</td>
<td>17</td>
<td>57</td>
<td>60</td>
<td>63</td>
<td>83</td>
<td>69</td>
</tr>
<tr>
<td>4</td>
<td>79</td>
<td>48</td>
<td>10</td>
<td>75</td>
<td>43</td>
<td>90</td>
<td>15</td>
<td>20</td>
</tr>
<tr>
<td>5</td>
<td>64</td>
<td>72</td>
<td>50</td>
<td>89</td>
<td>13</td>
<td>61</td>
<td>93</td>
<td>70</td>
</tr>
<tr>
<td>6</td>
<td>60</td>
<td>58</td>
<td>16</td>
<td>49</td>
<td>62</td>
<td>32</td>
<td>93</td>
<td>56</td>
</tr>
<tr>
<td>7</td>
<td>59</td>
<td>81</td>
<td>06</td>
<td>18</td>
<td>09</td>
<td>26</td>
<td>83</td>
<td>45</td>
</tr>
<tr>
<td>8</td>
<td>42</td>
<td>29</td>
<td>64</td>
<td>55</td>
<td>71</td>
<td>16</td>
<td>90</td>
<td>52</td>
</tr>
<tr>
<td>9</td>
<td>20</td>
<td>12</td>
<td>28</td>
<td>52</td>
<td>04</td>
<td>14</td>
<td>42</td>
<td>33</td>
</tr>
<tr>
<td>10</td>
<td>99</td>
<td>49</td>
<td>56</td>
<td>92</td>
<td>70</td>
<td>98</td>
<td>59</td>
<td>80</td>
</tr>
<tr>
<td>11</td>
<td>69</td>
<td>88</td>
<td>25</td>
<td>42</td>
<td>52</td>
<td>26</td>
<td>29</td>
<td>91</td>
</tr>
<tr>
<td>12</td>
<td>89</td>
<td>72</td>
<td>98</td>
<td>91</td>
<td>67</td>
<td>78</td>
<td>65</td>
<td>31</td>
</tr>
<tr>
<td>13</td>
<td>66</td>
<td>75</td>
<td>73</td>
<td>61</td>
<td>28</td>
<td>35</td>
<td>20</td>
<td>66</td>
</tr>
<tr>
<td>14</td>
<td>52</td>
<td>05</td>
<td>55</td>
<td>41</td>
<td>23</td>
<td>52</td>
<td>58</td>
<td>46</td>
</tr>
<tr>
<td>15</td>
<td>43</td>
<td>45</td>
<td>08</td>
<td>93</td>
<td>97</td>
<td>19</td>
<td>13</td>
<td>80</td>
</tr>
</table>
<input id="col" value="A1 B4 H5" class="inputclass" οnfοcus="focusInput(this)" οnkeydοwn="funcKeyDown(event)"/> <input id="submit" type="button" class="buttoncss" value="submit" οnclick="submit()"/>
<div id="content" class="content"></div>
</body>
</html>
最终效果图: