Tag: image

Java:检测图像格式,resize(缩放)并另存为JPEG

这是我的代码,它实际上工作,不完美,但确实如此,问题是resize的缩略图不粘贴在白色的绘制矩形上,打破图像宽高比,这里是代码,有人可以建议我修复好吗,拜托? 谢谢 import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class ImageScalerImageIoImpl implements ImageScaler { private static final String OUTPUT_FORMAT_ID = “jpeg”; // Re-scaling image public byte[] scaleImage(byte[] originalImage, int targetWidth, int targetHeight) { […]

如何在GWT中预取图像?

我尝试了以下代码: RootPanel root = RootPanel.get(“root”); root.clear(); final FlowPanel p = new FlowPanel(); root.add(p); for (int i=0; i<20; ++i) { String url = "/thumb/"+i; final Image img = new Image(url); img.addLoadHandler(new LoadHandler() { @Override public void onLoad(LoadEvent event) { p.add(img); } }); Image.prefetch(url); 但它对我不起作用。 我错过了什么吗?

HtmlUnit在浏览页面时是否加载图像?

如上。 它是否加载图像?

使用java在pdf内部展平矢量图形并提取

我试图获取嵌入在PDF文件中的图像的大小(宽度和深度)。 PDF中的图像都是高分辨率矢量图像。 我尝试使用PDFBox。 PDFBox库完美地提取图像以用于普通图形。 但是,当它获得矢量图像时,它会将不同的图层提取为不同的图像。 我也读过有关iText的内容。 但是iText可以将整个页面转换为光栅化图像。 然而,我的PDF页面实际上包含多个图像,我需要以不同的方式提取/获取所有这些图像的大小。 我在这里附加我的PDFBox图像提取代码。 请让我知道,如何将一个矢量图像作为一个图像而不是图层。 我的代码如下: package com.abp.pdf.util; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.encryption.AccessPermission; import org.apache.pdfbox.pdmodel.encryption.StandardDecryptionMaterial; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; public class ExtractImages { private int imageCounter = 1; private ExtractImages() { […]

如何使用Java从pdf中提取图像(不使用pdfbox)

我正在研究如何从一个大的(> 300MB)PDF文件中提取图像。 我正在使用pdfbox但由于某些特殊原因我无法弄清楚,有些页面未正确提取。 我正在使用pdfbox的PDFToImage类作为我的代码的基础。 那么,你知道另一个可以帮助我做这个的图书馆吗? 我知道可以使用iText,但我读到它不能用于商业产品。 我已经安装了软件包xpdf和xpdf-utils,名为pdfimages的实用程序工作正常。 但我需要从Java解决这个问题,它应该是可移植的。

呈现大图时的javafx NullPointerException

我正在尝试使用JavaFX 8下的GraphicsContext.drawImage(…)方法渲染.png图像。我的代码可以很好地处理大小为~1000px x 2000px的图像。 但不幸的是,我需要渲染大小为7000px x 14000px的图像。 加载此图像也可以正常工作,但是当调用drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight())方法时,我得到以下错误输出: java.lang.NullPointerException at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:389) at com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:139) at com.sun.javafx.sg.prism.NGCanvas.handleRenderOp(NGCanvas.java:1228) at com.sun.javafx.sg.prism.NGCanvas.renderStream(NGCanvas.java:997) at com.sun.javafx.sg.prism.NGCanvas.renderContent(NGCanvas.java:578) … more rendering stuff here at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:469) at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:317) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:89) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) at java.lang.Thread.run(Thread.java:745) 如果我在绘制到canvas时尝试调整图像大小或者尝试渲染整个图像时,它没有任何区别。 我的猜测是图像大小太大而无法呈现,但我无法找到任何来源来validation这一点,我也找不到任何解决我问题的方法。 我还对Java堆(使用Eclipse […]

将JUNG图写入图像:无法可靠地呈现完整的图形

我一直在使用JUNG来可视化一些简单的图形,我想将它们中的几个写入PNG文件。 不幸的是,图像经常在图形完成绘制之前呈现出来,这意味着我得到了不完整的图形 – 也就是说,只绘制了一个边缘或节点的图形 – 大约一半的时间。 渲染到屏幕工作正常,这是我为什么如此困惑的部分原因。 正如您将在下面看到的,我尝试了几种解决方法,但它们没有帮助。 知道我正在使用的basicVisualizationServer不会直接绘制对BufferedImage有用的东西可能很有用 – 我尝试时只得到一个黑色图像。 谢谢! public void writeImage(String filename) { Layout layout = new CircleLayout(jungGraph); layout.setSize(innerSize); bvs = new BasicVisualizationServer(layout); float strokeWidth = 8f; bvs.getRenderContext().setVertexShapeTransformer(new ConstantTransformer(new Ellipse2D.Float(-24,-24,48,48))); bvs.getRenderContext().setArrowDrawPaintTransformer(new ConstantTransformer(Color.black)); bvs.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(strokeWidth))); bvs.getRenderContext().setEdgeArrowStrokeTransformer(new ConstantTransformer(new BasicStroke(strokeWidth))); bvs.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); bvs.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); bvs.setPreferredSize(viewSize); //int width = bvs.getWidth(); // Always returns zero […]

显示图像并转换为灰度 – OpenCV for Android,Java API

我正在Eclipse中编写一个使用OpenCV4Android API的Android应用程序。 如何轻松显示Mat图像,仅用于调试? 在C ++中,根据OpenCV教程,您可以执行以下操作: namedWindow( “Display window”, CV_WINDOW_AUTOSIZE );// Create a window for display. imshow( “Display window”, image ); // Show our image inside it. 但是Android API的Java API似乎没有在org.opencv.highgui.Highgui使用namedWindow函数。 另外,我想将图像加载为灰度。 在C ++中,根据imread不在Opencv中工作 ,你会做: imread(“blackandwhite.jpg”, 0); 但Java API的Highgui.imread()只有filename参数。

JavaFX 2.0+ WebView / WebEngine将网页呈现给图像

我正在寻找一种加载页面并将渲染保存为图像的方法,就像使用CutyCapt一样(QT + webkit EXE就是这样)。 目前并且没有JavaFX,我通过从java调用外部进程并渲染到文件而不是将该文件加载到ImageBuffer中来实现…既不优化也不实用,甚至更少跨平台… 使用JavaFX2 +我尝试使用WebView和WebEngine: public class WebComponentTrial extends Application { private Scene scene; @Override public void start(final Stage primaryStage) throws Exception { primaryStage.setTitle(“Web View”); final Browser browser = new Browser(); scene = new Scene(browser, 1180, 800, Color.web(“#666970”)); primaryStage.setScene(scene); scene.getStylesheets().add(“webviewsample/BrowserToolbar.css”); primaryStage.show(); } public static void main(final String[] args) { launch(args); } } class […]

使用Graphics2D翻转图像

我一直试图弄清楚如何翻转图像一段时间,但还没想到。 我正在使用Graphics2D来绘制Image g2d.drawImage(image, x, y, null) 我只需要一种在水平轴或垂直轴上翻转图像的方法。 如果你想要,你可以看看github上的完整源代码 。