java实现位图索引代码,Java 位图

在Java中,怎么用代码自动添加一个索引页?

/**

成都创新互联公司企业建站,十多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站设计、成都做网站中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

* excel链接

*/

sheet.addCell(new Label(0, 8, "excel链接测试", wcf)); // 链接标题

sheet.mergeCells(0, 8, 2, 8);

WritableHyperlink link = new WritableHyperlink(0, 9, new URL(""));

link.setDescription("链接使用 链接到NilPower");

sheet.mergeCells(0, 9, 1, 9);

sheet.addHyperlink(link);

from

求用java实现索引查找的代码。

package com.cn.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

//import java.awt.List;

public class Query {

public ListUserVo showUser(){

Connection conn=null;

Statement stmt=null;

ResultSet rs=null;

ListUserVo list=new ArrayListUserVo();

try{

conn=JDBC_Connection.getConnection();

stmt=conn.createStatement();

rs=stmt.executeQuery("select * from users");

while(rs.next()){

UserVo userVo=new UserVo();

userVo.setId(rs.getInt("id"));

userVo.setName(rs.getString("name"));

userVo.setAge(rs.getInt("age"));

userVo.setTel(rs.getString("tel"));

userVo.setAddress(rs.getString("address"));

list.add(userVo);

}

}catch(SQLException e){

e.printStackTrace();

}finally{

JDBC_Connection.free(rs, conn, stmt);

}

return list;

}

public static void main(String[] args) {

Query query=new Query();

ListUserVo list=query.showUser();

if(list!=null){

System.out.print("id\t");

System.out.print("name\t");

System.out.print("age\t");

System.out.print("tel\t");

System.out.print("address\t");

System.out.println();

for(int i=0;ilist.size();i++){

System.out.print(list.get(i).getId()+"\t");

System.out.print(list.get(i).getName()+"\t");

System.out.print(list.get(i).getAge()+"\t");

System.out.print(list.get(i).getTel()+"\t ");

System.out.print(list.get(i).getAddress()+"\t");

System.out.println();

}

}

}

}

要自己加驱动,,,,这个你应该可以看懂吧,,

如何用java语言建立多个索引?

使用jdbc技术连接数据库

使用语句对象statement的execute方法可以执行对索引的操作

例如代码如下

public class IndexFiles {

//使用方法:: IndexFiles [索引输出目录] [索引的文件列表] ...

public static void main(String[] args) throws Exception {

String indexPath = args[0];

IndexWriter writer;

//用指定的语言分析器构造一个新的写索引器(第3个参数表示是否为追加索引)

writer = new IndexWriter(indexPath, new SimpleAnalyzer(), false);

for (int i=1; iargs.length; i++) {

System.out.println("Indexing file " + args[i]);

InputStream is = new FileInputStream(args[i]);

//构造包含2个字段Field的Document对象

//一个是路径path字段,不索引,只存储

//一个是内容body字段,进行全文索引,并存储

Document doc = new Document();

doc.add(Field.UnIndexed("path", args[i]));

doc.add(Field.Text("body", (Reader) new InputStreamReader(is)));

//将文档写入索引

writer.addDocument(doc);

is.close();

};

//关闭写索引器

writer.close();

}

}

public class Search {

public static void main(String[] args) throws Exception {

String indexPath = args[0], queryString = args[1];

//指向索引目录的搜索器

Searcher searcher = new IndexSearcher(indexPath);

//查询解析器:使用和索引同样的语言分析器

Query query = QueryParser.parse(queryString, "body",

new SimpleAnalyzer());

//搜索结果使用Hits存储

Hits hits = searcher.search(query);

//通过hits可以访问到相应字段的数据和查询的匹配度

for (int i=0; ihits.length(); i++) {

System.out.println(hits.doc(i).get("path") + "; Score: " +

hits.score(i));

};

}

}在整个检索过程中,语言分析器,查询分析器,甚至搜索器(Searcher)都是提供了抽象的接口,可以根据需要进行定制。

分 析:

索引过程中可以看到:

语言分析器提供了抽象的接口,因此语言分析(Analyser)是可以定制的,虽然lucene缺省提供了2个比较通用的分析器SimpleAnalyser和StandardAnalyser,这2个分析器缺省都不支持中文,所以要加入对中文语言的切分规则,需要修改这2个分析器。

Lucene并没有规定数据源的格式,而只提供了一个通用的结构(Document对象)来接受索引的输入,因此输入的数据源可以是:数据库,WORD文档,PDF文档,HTML文档……只要能够设计相应的解析转换器将数据源构造成成Docuement对象即可进行索引。

对于大批量的数据索引,还可以通过调整IndexerWrite的文件合并频率属性(mergeFactor)来提高批量索引的效率。

总 结:

搜索结果返回的是Hits对象,可以通过它再访问Document==Field中的内容。假设根据body字段进行全文检索,可以将查询结果的path字段和相应查询的匹配度(score)打印出来,

java 如何实现数组排序并输出每个数字原来的索引

java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:

import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List; public class ceshi {    public static void main(String[] args) {        int n = 5;        int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 };        HashMap map = new HashMap();        for (int i = 0; i  a.length; i++) {            map.put(a[i], i); // 将值和下标存入Map        }         // 排列        List list = new ArrayList();        Arrays.sort(a); // 升序排列        for (int i = 0; i  a.length; i++) {            list.add(a[i]);        }        for (Object object : list) {            System.out.print(object + ",");        }        System.out.println();         // 查找原始下标        for (int i = 0; i  n; i++) {            System.out.print(map.get(a[i]) + ",");        }     } }

运行结果如下:

通过文字搜索图片 java代码实现及说明

import ja.io.*;

//获取文件夹内容

public class getthing

{

public static void main(String[] args) throws Exception

{

System.out.println(welstr);

listFile(new File("e:\\aa")); //想要搜索的路径

}

public static void listFile(File file) throws Exception

{

if(file.isFile())

{

//输出的是完整的文件夹内文件的路径

System.out.println("File :"+file.getAbsolutePath());

//01.jpg就是你要找的图片

if (file.getAbsolutePath().endsWith("01.jpg"))

System.out.println("有搜索的图片");

}

else

{

System.out.println("Dir :"+file.getAbsolutePath());

File[] files =file.listFiles();

for(int i=0;ifiles.length;i++)

{

listFile(files[i]);

System.out.println("回车");

}

}

}

}

1 首先确定你要搜索的目录

2 要搜索的关键字 如“花”

3 只搜索图片类型 .jpg .gif .png .bmp之类的

4 在文本框里获得搜索的关键字

5 取得要搜索目录下的所有图片类型的名字

6 用关键字和取得的文件名一一进行对比

7 若有关键字 记录该图片的名字

8 若都没关键字 表示无该名字的图片

9 空白区域你可以用一个窗体来表示

10 把搜索到的图片都显示在这个窗体。

Java处理bmp图像,怎样操作BMP位图的数据

bmp图像文件数据分为三个部分:

1、前14个字节为文件信息头,在这部分信息中包含了位图信息标志、该bmp图像的大小和图像实际数据的相对偏移量这三部分有用的信息。

位图标志一定为“0x4D42”,否则,该文件不是bmp图像。

在VC++中,这14个字节对应一个数据类型,类型名为“BITMAPFILEHEADER”,它的定义为:

typedef struct tagBITMAPFILEHEADER {

WORD bfType; //位图信息标志

DWORD bfSize; //图像的大小

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits; //图像实际数据的相对偏移量

} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;

可以设一个该类型的变量:BITMAPFILEHEADER bmfh,将bmp图像文件的前14字节数据读入这个变量中,然后通过判断bmfh.bfType == 0x4D42,确定是不是为bmp图像。

2、接下来40个字节为位图信息头,其中存储了该bmp图像的有关信息。这些信息包括:图像宽度(像素)、图像高度(像素)、图像长度(字节,仅仅是图像实际数据的长度,不包括各个信息头)、水平分辨率、垂直分辨率、每个像素的存储位数等信息。

其中,通过“每个像素的存储位数”这个信息可以知道图像的颜色:

如果“每个像素的存储位数”的值只有四种:为1,说明图像只有两种颜色(黑、白);为4,说明图像有16种颜色;为8,说明图像有256种颜色;为24,说明该图像为真彩色图像,颜色数为2^24。这四种取值对应四种bmp图像,也就是说,bmp图像只有这四种。

在这四种bmp图像种,前三种都需要在图像文件中包含调色板数据,分别存储三种图像的2、16、256种颜色。而最后一种bmp格式的图像不需要调色板,因为这种图像的“每个像素的存储位数”值为24,也就是说,存储一个像素值需要24位,正好可以存储一个像素的颜色(红、绿、蓝各8位)。

在VC++中,这40个字节的位图信息头也有一个数据类型,类型名为“BITMAPINFOHEADER”,它的定义为:

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;

LONG biWidth; //图像宽度(像素)

LONG biHeight; //图像高度(像素)

WORD biPlanes;

WORD biBitCount; //每个像素的存储位数

DWORD biCompression;

DWORD biSizeImage; //图像长度(字节,仅仅是图像实际数据的长度,不包括各个信息头)

LONG biXPelsPerMeter; //水平分辨率

LONG biYPelsPerMeter; //垂直分辨率

DWORD biClrUsed;

DWORD biClrImportant;

} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;

3、接下来若干个字节为调色板,只有前三种bmp图像有,第四种真彩色bmp图像没有这部分数据。

调色板是一个数组,每个数组元素有四字节,只有三个字节有用,另外一个没有。有用的三个字节存储一种颜色(红绿蓝各占一字节),这四个字节在VC++中定义为:

typedef struct tagRGBQUAD {

BYTE rgbBlue;

BYTE rgbGreen;

BYTE rgbRed;

BYTE rgbReserved;

} RGBQUAD;

定义一个这种类型的数组即为调色板。数组的长度可由BITMAPINFOHEADER中的biBitCount推算出来。

4、上述三部分信息之后,即是实际的像素数据。一个像素的存储位数为1、4、8或16,正如前面所述。

如果是1位,对应的bmp图像应该有一个长度为2的调色板。这一位的值只能是0或1,用来指明该像素的颜色在调色板中的地址。

如果是4位,对应的bmp图像应该有一个长度为16的调色板。这4位的值有16种,同样指示该像素的颜色在调色板中的地址。

如果是8位,对应的bmp图像应该有一个长度为256的调色板。这8位的值有256种,同样指示该像素的颜色在调色板中的地址。

如果是24位,对应的bmp图像没有调色板,该像素的颜色由这24位数据直接表示。

bmp图像的数据就这几个部分。

任何一个bmp图像的像素都是由红绿蓝三种颜色组成(带调色板也好,不带调色板也好)。如果一个像素的红绿蓝三种色的值相等,那么该像素就是灰色的。灰度图是这样一种有严格规定的bmp图像:它是上述四种bmp图像的第三种,并且它的调色板的每个数组元素的红绿蓝三值都相同,所以灰度图的灰度种数是256。

若要保存图像,需要按顺序保存文件信息头、位图信息头、调色板(如果有)和图像的实际数据。程序可以这样写:

bool Write(CString FileName)

{

CFile file;

BITMAPFILEHEADER bmfh;

if(! (bmi pBits))

{

AfxMessageBox("Data is not valid!");

return FALSE;

}

//创建文件

if(!file.Open(FileName,CFile::modeCreate | CFile::modeWrite))

{

AfxMessageBox("File creating fails!");

return FALSE;

}

//填写文件信息头

bmfh.bfType = 0x4d42;

bmfh.bfReserved1 = bmfh.bfReserved2 = 0;

int nInfoSize = sizeof(BITMAPINFOHEADER) + GetPaletteSize() * sizeof(RGBQUAD);

bmfh.bfOffBits = sizeof(bmfh) + nInfoSize;

bmfh.bfSize = bmfh.bfOffBits + bmi-bmiHeader.biSizeImage;

//写文件

file.Write( (LPVOID)bmfh, sizeof(bmfh));

file.Write( (LPVOID)bmi, nInfoSize);

file.Write( (LPVOID)pBits, bmi-bmiHeader.biSizeImage);

return TRUE;

}


网站标题:java实现位图索引代码,Java 位图
转载注明:http://scjbc.cn/article/dsgpipd.html

其他资讯