标签: java-2d

Java Swing不赞成使用JavaFx 2.0

我是否认为Oracle已经弃用了Swing而JavaFx 2.0是它的官方替代品?

这对我来说是有道理的,因为对于oracle而言,维持两个竞争api的开发似乎有些愚蠢,这几乎完全相同.然而,Oracle已经在java 7 swing api中引入了半透明窗口,异形窗口等增强功能.我认为这可能是出于过渡目的,但如果有人能够了解当前"标准"或"最佳实践"对于新应用程序的选择 - 我是否真的很感激 - Swing或javafx 2.0?未回答问题的另一个来源似乎是Java 2D的命运.是否值得掌握该API现在另一个图形引擎,Prism,uunderlies JavaFx 2.0?

非常感谢,Marc

java swing javafx java-2d

7
推荐指数
0
解决办法
4926
查看次数

如何通过BufferedImage将巨大的图像加载到Java?

我想将大图像(18000 x 18000)加载到我的应用程序中.如果我使用BufferedImage类型int_rgb,我需要大约1235mb的堆内存来加载.这是一个非常大的内存量,最终用户可能会有更少的内存(1GB或更少).

在我的开发PC上,当我从MyEclipse IDE加载图像时,它会抛出内存不足Exception.当我将我的代码打包到一个可执行jar并在Eclipse外部的PC上运行时,它仍然会抛出异常.

如何在不使用1235mb内存的情况下使用缓冲图像将如此大的图像加载到我的应用程序中?有没有一个技巧,比如将图像分成像图像分割这样的较小部分?

在SO上找到了这个帖子,但它对我没用; 我想加载图像BufferedImage,然后Panel使用Graphics该类绘制它.

java image image-processing java-2d

7
推荐指数
1
解决办法
2296
查看次数

如何将BufferedImage保存为低于特定大小

(使用java 8)鉴于图像用户需要能够以像素为单位指定最小/最大图像大小,并且还需要以kbs为单位指定已保存图像的最大大小,图像将保存为jpg.

所以我通过调整缓冲图像的大小来完成第一个工作:

public static BufferedImage resizeUsingImageIO(Image srcImage, int size)
    {
        int w = srcImage.getWidth(null);
        int h = srcImage.getHeight(null);

        // Determine the scaling required to get desired result.
        float scaleW = (float) size / (float) w;
        float scaleH = (float) size / (float) h;

        MainWindow.logger.finest("Image Resizing to size:" + size + " w:" + w + ":h:" + h + ":scaleW:" + scaleW + ":scaleH" + scaleH);

        //Create an image buffer in which to paint on, create as an opaque …
Run Code Online (Sandbox Code Playgroud)

java bufferedimage java-2d java-8

7
推荐指数
1
解决办法
1387
查看次数

Java创建浮雕(红/蓝图像)

我正在编写一个Java游戏引擎(http://victoryengine.org),我一直在尝试生成带有红色/蓝色眼镜的深度"3D"图像.我正在使用Java2D进行图形处理.

我创造了一些有效的东西,但速度很慢(通过手动复制像素值和类似的东西).

我需要的是两个BufferedImages(一个用于左眼,一个用于右侧)并将它们组合成一个(另一个缓冲区或直接连接到屏幕).对于一个我只想要红色通道,而另一个我想要绿色和蓝色通道.最快的方法是什么?

java graphics java-2d

6
推荐指数
1
解决办法
1906
查看次数

比较两个BufferedImages之间像素值的最快方法?

我有一个TYPE_INT_BGR类型的BufferedImage.我需要与另一个BufferedImage进行逐像素比较,以计算两个图像之间的"距离".我有一些有用的东西,但很慢.我从"参考"图像中获取一个像素,将其分解为RGB字节:

    int pixel = referenceImage.getRGB(col, row);
    int red   = (pixel >> 16) & 0xff;
    int green = (pixel >> 8) & 0xff;
    int blue  = (pixel) & 0xff;
Run Code Online (Sandbox Code Playgroud)

我将r/g/b值与候选图像的相应像素进行比较,并将差值求平方.

有没有更快的方法来进行这种比较?窥视JRE源代码,我看到BufferedImage.getRGB()实际上是将光栅中的RGB值组合在一起,这对我来说是浪费的,因为我只是将其分解为字节.

我将尝试直接尝试,但我想知道是否有更好的方法来做到这一点,无论是通过我可能错过的Java或第三方API.

java rgb bufferedimage java-2d

6
推荐指数
1
解决办法
6312
查看次数

Java 2D:将一个点P移动到一个距离更近的另一个点?

将Point2D.Double x距离移近另一个Point2D.Double的最佳方法是什么?

编辑:尝试编辑,但所以进行维护.不,这不是功课

我需要将一个平面(A)移向跑道(C)的末端并将其指向正确的方向(角度a).

alt text http://img246.imageshack.us/img246/9707/planec.png

这是我到目前为止所拥有的,但它看起来很混乱,通常的做法是什么?

    //coordinate = plane coordinate (Point2D.Double)
    //Distance = max distance the plane can travel in this frame

    Triangle triangle = new Triangle(coordinate, new Coordinate(coordinate.x, landingCoordinate.y),  landingCoordinate);

    double angle = 0;

    //Above to the left
    if (coordinate.x <= landingCoordinate.x && coordinate.y <= landingCoordinate.y)
    {
        angle = triangle.getAngleC();
        coordinate.rotate(angle, distance);
        angle = (Math.PI-angle);
    }
    //Above to the right
    else if (coordinate.x >= landingCoordinate.x && coordinate.y <= landingCoordinate.y)
    {
        angle = triangle.getAngleC();
        coordinate.rotate(Math.PI-angle, distance);
        angle = …
Run Code Online (Sandbox Code Playgroud)

java java-2d

6
推荐指数
3
解决办法
8759
查看次数

将文本与Java Graphics 2d对齐

任何人都可以告诉我如何在Java 2d中找到文本吗?

这是代码,它绘制了一列自然对齐的文本.

Font yFont = new Font("Arial", Font.BOLD, 13);

interval = 0;

g2d.setFont(yFont);
for (String l : binLabels) {
     g2d.drawString(l, 0, (135 + interval));
     interval = interval + 15;
}
Run Code Online (Sandbox Code Playgroud)

快把我逼疯了.谢谢你们

slothishtype

java java-2d

6
推荐指数
1
解决办法
7600
查看次数

如何在2D中的2个点之间创建曲线并返回每隔d距离生成该曲线的点?

我的数学不好.

我有2个点,A(x1, y1)B(x2, y2)在2D.

我需要在R(半径)处创建从点AB弯曲的虚拟路径,然后返回描述此弯曲路径的点阵列,而不是所有可能彼此相距的D(距离).

在Java中我需要一个像这样的方法:

private ArrayList<PointF> generateCurve(PointF pFrom,PointF pTo,float pRadius,float pMinDistance){

    ArrayList<PointF> pOutPut = new ArrayList<PointF>();
    // ...generate result to pOutPut 

    return pOutPut;
}
Run Code Online (Sandbox Code Playgroud)

这该怎么做 ?

java math 2d java-2d

6
推荐指数
1
解决办法
4701
查看次数

当鼠标点击时,java绘制一个圆圈

我正在编写一个程序,当点击鼠标时,将绘制一个圆圈.到目前为止我写的下面的代码.

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.event.*;
import java.awt.geom.*;

public class test extends JFrame implements ActionListener, MouseListener {
    Shape circle = new Ellipse2D.Float(10, 10, 10, 10);

    public test () {
        setSize(250,150);
        addMouseListener(this);
    }

    public static void main(String[] args) {
        //TODO code application logic here
        java.awt.EventQueue.invokeLater(new Runnable() {
              public void run() {
                   test frame = new test();
                   frame.setVisible(true);
              }
        });
    }

    public void actionPerformed(ActionEvent ae) {

    }

    public void drawCircle(int x, int y) …
Run Code Online (Sandbox Code Playgroud)

java swing java-2d

6
推荐指数
2
解决办法
3万
查看次数

在Java中绘制一个漂亮的圆圈

我正在使用Java Graphics而且我一直在变得"丑陋".

这是我的Java程序所做的 在此输入图像描述

这是在Matlab中做的同样的事情 在此输入图像描述

我认为Java显然不像Matlab那样"好看",特别是在圆的边缘.请注意,这与分辨率无关......这些图像的大小几乎相同.另请注意,我已经设置了渲染提示.

这是一个独立的主要功能,你可以运行来测试这个.

package test;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

public class SimplePaint02 {

    private static final int LINE_THICKNESS = 4;
    private static final int LINE_GAP = 10;
    private Color lineColor = Color.red;

    public static void main(String[] args) {
        new SimplePaint02();
    }

    public SimplePaint02() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try …
Run Code Online (Sandbox Code Playgroud)

java graphics geometry awt java-2d

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×10

java-2d ×10

bufferedimage ×2

graphics ×2

swing ×2

2d ×1

awt ×1

geometry ×1

image ×1

image-processing ×1

java-8 ×1

javafx ×1

math ×1

rgb ×1