草庐IT

Graphics

全部标签

java - 如何在 Java2D/Graphics2D 中指定后备字体

我正在使用g.drawString(str,x,y)绘制带有Graphics2D对象g的字符串。g的当前字体没有覆盖str的所有字符(我在那里有中文字符)。在MacOSX上,后备字体似乎会自动使用,但在Windows上不会,出现黑色方形轮廓而不是所需字符。为什么行为因平台而异?如果缺少字符,如何指定后备字体(或几种后备字体)?(例如,一种漂亮的字体there。)更新/更多信息因此,不支持所有字符的原始字体不是JVM的logicalfonts之一。,但它是我的应用程序附带的捆绑字体,是通过Font.createFont()获得的。因此,将字体添加到JRE的lib/fonts/fallba

Java 字体大小与 HTML 字体大小

我正在图像上写文字。我正在使用DrawString(x,y,string)方法并将字体大小设置如下Fontfont=newFont(fontName,fontWeight,fontSize);如您所见,左侧文本以12pt大小写在图像上。在右侧,您可以在HTML中看到12pt大小。有没有什么方法可以映射它,以便我在输出中获得与用户在HTML中看到的相同的大小? 最佳答案 我找到了thislink.也许有用。试试吧。基本上是这么说的Javaassumes72dpiscreenresolutionWindowsuses96dpior120

java - 以编程方式减小 JPEG 文件大小

为任何无知道歉,但我以前从未在Java中使用过jpeg图像(更不用说任何类型的图像)。假设我想从Web服务向客户端发送jpeg图像。有什么方法可以通过以某种方式操纵图像的颜色配置文件来减小jpeg文件的大小?我已经能够通过使用名为imgscalr的BufferedImages简洁工具缩放图像来减小图像大小。参见here.我还想要颜色比高质量jpeg图像少的jpeg。例如,我希望能够在我的jpeg中使用8位颜色而不是16位颜色。如果我有一个来自Java的2D包的BufferedImage,我究竟需要更改什么? 最佳答案 另一种减小图像

Java:如何在 ScrollPane Viewport 上绘制非滚动覆盖?

我想使用ScrollPane在其视口(viewport)中显示图像,并在图像上覆盖一个网格(或框,或任何其他类型的注册/位置标记)。我需要覆盖层在滚动时保持固定(这意味着图像似乎在覆盖层“下方”移动)。我将以固定的速率在视口(viewport)中ScrollView以提供平滑的运动,叠加层是为了提供对视口(viewport)内特定位置的引用。从概念上讲,想象一个大map在视口(viewport)中滚动,并且视口(viewport)有一个不移动的矩形(相对于视口(viewport)本身),它标记了一个区域,该区域可以根据某些用户操作放大。我假设(但尚未确认)ScrollPane实现可以有

java - 我应该使用什么来显示游戏图形?

我有一个游戏系统,但我不知道应该用什么来显示它。我正在制作一款垂直射击游戏,我已经为所有控制敌人和玩家的类编写了方法,但我不知道如何有效地展示游戏。我在想一个Canvas,它会重新绘制每一帧,但这真的是最有效的方法吗?重要细节:理想帧率:25fps这是一个2d游戏任一时刻屏幕上有25-100个对象,所有对象都在移动显示的所有对象都是图像,均为PNG格式窗口大小为640像素x480像素现在所有图像都作为BufferedImage加载,尽管我可以轻松更改它7.我需要一个坐标平面。如果不完全重构我的代码,这是唯一无法更改的基本部分。最重要的是,我设置所有内容的方式,所有对象的每一帧都在我设计

java - 在java中将文本字段添加到图形

有谁知道如何将JTextField添加到图形名称bufferstrategy.getDrawGraphics中?试着把它变成图形,像这样:privateJTextFieldInput=newJTextField();BufferStrategybs=getBufferStrategy();if(bs==null){createBufferStrategy(3);return;}finalGraphicsgCommands=bs.getDrawGraphics();GraphicsgCC=bs.getDrawGraphics();Input.requestFocus();Input.pa

java - 为什么MouseEvent的getX() getY() 好像和真实坐标有偏移?

我在JFrame中嵌入了一个JPanel。JPanel被添加到BorderLayout的CENTER。我正在使用以下代码对其进行绘制,但MouseEvent的getX()和getY()似乎偏移了实际坐标。为什么?相关代码是:-privateImagebackBuffer=createImage(getWidth(),getHeight());publicvoidmouseDragged(MouseEvente){//System.out.println("Canvas.mouseDragged()");Graphics2Dg2d=(Graphics2D)backBuffer.getGr

java - 在 Java 中重置 Graphics2D 对象

我在Java中试验Graphics2D。但像往常一样,我被困住了。:P问题是:假设我有这段代码,Graphics2Dg=(Graphics2D)(this.getGraphics());//InsideaJFrameg.rotate(Math.PI/8);g.drawLine(10,20,65,80);//Iwantthisoneandallfollowinglinestobedrawnwithoutanyrotationg.drawLine(120,220,625,180);这可能吗???我知道一定有某种方法,但我无法弄清楚。请帮忙。 最佳答案

Java,如何绘制不断变化的图形

以前没有做过,所以显然我很烂。在这里,当前鼠标位置周围的64像素在表单上绘制得更大一些。问题是,它“有点”变慢,我不知道从哪里开始修复。除此之外,我创建了一个线程,它在完成时不断调用更新图形和像文本一样的小帧率,以显示绘制事物的速度。图像示例:(图像来自Eclipse中的字母“a”)代码示例:@SuppressWarnings("serial")publicstaticclassAwtZoomextendsFrame{privateBufferedImageimage;privatelongtimeRef=newDate().getTime();Robotrobot=null;publ

java - LibGDX 中的分屏

这个问题很简短。如何在LibGDX中创建分屏效果。如果我创建两个相机,它所做的就是在某处绘制一个,然后绘制下一个,覆盖前一个相机。然后我想使用多个屏幕,但看起来它不会工作,因为它只支持调整大小而不支持在窗口内重新定位。我还使用了Box2DDebugRenderer和ShapeRenderer,因此它还需要在分屏限制下将它们切断。LibGDX站点上似乎没有任何文档。 最佳答案 在#libgdxIRC上询问了一下后,有人向我指出了函数Gdx.gl.glViewport(intx,inty,intwidth,intheight)。所以你只