「java怎么定位图片坐标」java怎么看坐标

博主:adminadmin 2022-11-23 13:34:08 56

今天给各位分享java怎么定位图片坐标的知识,其中也会对java怎么看坐标进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java图片的坐标原点位置问题

canvas中有一个函数translate()是用来实现画布平移的,画布的原状是以左上角为原点,向左是X轴正方向,向下是Y轴正方向,如下图所示,也就是(0,0)。

JAVA中如何在指定坐标显示图片

用绘图的方式把图片画上就可以了

public void paint(Graphics g){

ImageIcon img = new ImageIcon("pic.png");

g.drawImage(img,x,y,this);

}

怎么用java做一个图像细胞的标注测试的工具?,实现图片放大,框图,定位坐标?

public class PhotoFrame extends JFrame

{

private static final long serialVersionUID = -2216276219179107707L;

private Container con;

private MousePanel zPanel;

private JScrollPane imgSp;

private JPanel btnPanel;

private String imageDir;

private String currImg;//文件名,不包含目录

private int currIndex;//当前图片索引

ArrayListString imgList;//所有图片的绝对路径

public void writeCropImg() throws IOException

{

BufferedImage sourceImage = (BufferedImage) zPanel.getImg();

Image croppedImage;

ImageFilter cropFilter;

int x = zPanel.getPointX()-25;

int y = zPanel.getPointY()-25;

//四个参数分别为图像起点坐标和宽高,即CropImageFilter(int x,int y,int width,int height),详细情况请参考API

//指定要裁剪的的文件的宽度和高度,以及起始坐标

cropFilter =new CropImageFilter(x,y,50,50);

//生成图片

croppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));

//获取创建后的图片的高度

int h1=croppedImage.getHeight(null);

int w1=croppedImage.getWidth(null);

BufferedImage bi=new BufferedImage(w1,h1,BufferedImage.TYPE_INT_RGB);

Graphics g=bi.getGraphics();

//在画图的时候可以设置背景色

g.drawImage(croppedImage,0,0,Color.white,null);

String dir = imageDir+"_crops";

//创建文件输出流

FileOutputStream fos=new FileOutputStream(new File(dir+"/"+currImg));

//将创建的图片写入到输出流

ImageIO.write(bi, "png", fos);

fos.close();

}

private void showNext()

{

updateCurrName();

zPanel.setImagePath(imgList.get(currIndex));

currIndex++;

}

private void updateCurrName()

{

String path = imgList.get(currIndex);

int index = path.lastIndexOf('/');

currImg = path.substring(index);

}

private class nextHandler implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

showNext();

}

}

private class openDirHandler implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

JFileChooser chooser = new JFileChooser();

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//设置只能选择目录

int returnVal = chooser.showOpenDialog(null);

if(returnVal == JFileChooser.APPROVE_OPTION)

{

imageDir =chooser.getSelectedFile().getPath();

imgList = FileTool.refreshFileList(imageDir);

currIndex = 0;

showNext();

//System.out.println ( "你选择的目录是:" + selectPath );

//你选择的目录是:/home/linger/imdata/collar

}

}

}

private void savePointAndImg()

{

try

{

String dir = imageDir+"_points";

int x = zPanel.getPointX();

int y = zPanel.getPointY();

//打开文件

File f=new File(dir+"/");

if(!f.exists())

{

f.mkdir();

}

f=new File(dir+"/"+currImg);

if(!f.exists())

{

f.createNewFile();

}

FileOutputStream fos=new FileOutputStream(f);

OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");

BufferedWriter bw=new BufferedWriter(osw);

//写入文件

bw.write(x+","+y);

//关闭文件

bw.close();

osw.close();

fos.close();

writeCropImg();

}

catch (IOException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

private class savePointHandler implements ActionListener

{

@Override

public void actionPerformed(ActionEvent e)

{

savePointAndImg();

}

}

private class openImageHandler implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

JFileChooser chooser = new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG PNG Images", "jpg", "png");

chooser.setFileFilter(filter);

int returnVal = chooser.showOpenDialog(null);

if(returnVal == JFileChooser.APPROVE_OPTION)

{

File file = chooser.getSelectedFile();

imageDir = file.getParent();

imgList = FileTool.refreshFileList(imageDir);

currImg = file.getName();//文件名,不包含路径

// System.out.println();

String path = file.getAbsolutePath();

currIndex = imgList.indexOf(path);

zPanel.setImagePath(path);

currIndex++;

//内部类访问外部类,可以直接访问的啊

}

}

}

private PhotoFrame()

{

con = getContentPane();

con.setLayout(new GridLayout(2,2));

zPanel = new MousePanel();

//zPanel.setImagePath("/home/linger/17820d01");//绑定图片

//zPanel.setPreferredSize(new Dimension(zPanel.getImgWidth(), zPanel.getImgHeight()));

imgSp = new JScrollPane();

imgSp.setPreferredSize(new Dimension(zPanel.getImgWidth(), zPanel.getImgHeight()));

imgSp.setViewportView(zPanel);

imgSp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

imgSp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

//con.add(imgSp, BorderLayout.CENTER);

con.add(imgSp);

btnPanel = new JPanel();

btnPanel.setLayout(new FlowLayout());

btnPanel.setSize(300,100);

JButton button = new JButton("打开图片");

button.setSize(100, 50);

btnPanel.add(button);

button.addActionListener(new openImageHandler());

button = new JButton("保存坐标");

button.setSize(100, 50);

btnPanel.add(button);

button.addActionListener(new savePointHandler());

button = new JButton("打开目录");

button.setSize(100, 50);

btnPanel.add(button);

button.addActionListener(new openDirHandler());

button = new JButton("下一张");

button.setSize(100, 50);

btnPanel.add(button);

button.addActionListener(new nextHandler());

con.add(btnPanel);

zPanel.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent e)

{

if(e.getClickCount() == 2)

{

savePointAndImg();

showNext();

}

}

});

finalSetting();

}

private void finalSetting()

{

setTitle("标注工具");

Toolkit kit = Toolkit.getDefaultToolkit();

Dimension screenSize = kit.getScreenSize();

int screenHeight = screenSize.height;

int screenWidth = screenSize.width;

int frameH = getHeight();

int frameW = getWidth();

setLocation((screenWidth - frameW) / 2 - 250,

(screenHeight - frameH) / 2 - 250);

setSize(800, 600);

//setSize(zPanel.getImgWidth()+10, zPanel.getImgHeight()+10);

//setPreferredSize(new Dimension(zPanel.getImgWidth()+100, zPanel.getImgHeight()+100));

//pack();

setVisible(true);

setResizable(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args)

{

new PhotoFrame();

}

}

java怎么定位图片坐标的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java怎么看坐标、java怎么定位图片坐标的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。