import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
/**
* HTML2JPG,HTML页面转图片的实现方法。
*/
public class Test extends JFrame {
public Test(String url, File file) throws Exception {
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
editorPane.setPage(url);
JScrollPane jsp = new JScrollPane(editorPane);
getContentPane().add(jsp);
this.setLocation(0, 0);
Thread.sleep(5 * 1000);
setSize(10000, 10000);
pack();
// BufferedImage image = new BufferedImage(editorPane.getWidth(),
// editorPane.getHeight(), BufferedImage.TYPE_INT_RGB);
BufferedImage image = new BufferedImage(editorPane.getWidth(), editorPane.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
editorPane.paint(graphics2D);
BufferedImage image1 = resize(image, 450, 600);
ImageIO.write(image1, "jpg", file);
dispose();
}
public static void main(String[] args) throws Exception {
new Test("http://www.google.cn", new File("d:/file.jpg"));
}
public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
// targetW,targetH分别表示目标长和宽
int type = source.getType();
BufferedImage target = null;
double sx = (double) targetW / source.getWidth();
double sy = (double) targetH / source.getHeight();
// 这里想实现在targetW,targetH范围内实现等比缩放。如果不需要等比缩放
// 则将下面的if else语句注释即可
if (sx > sy) {
sx = sy;
targetW = (int) (sx * source.getWidth());
// } else {
// sy = sx;
// targetH = (int) (sy * source.getHeight());
}
if (type == BufferedImage.TYPE_CUSTOM) { // handmade
ColorModel cm = source.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();
target = new BufferedImage(cm, raster, alphaPremultiplied, null);
} else
target = new BufferedImage(targetW, targetH, type);
Graphics2D g = target.createGraphics();
// smoother than exlax:
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
g.dispose();
return target;
}
}
分享到:
相关推荐
实现网页快照,输入任意链接,在指定文件夹下生成对应的.jpg网页截图,且解决了截图白屏问题!
本代码实现html文件转换成一个图片的功能。附件包含所需要的包。 注:该代码转换的html文件必须一个屏幕能展现出来的,如果内容太多一个屏幕展现不出来则不能很好的转换。所以该代码只适用于内容不太多的html文件。...
输入网址,打开网站,就可以把整个网站保存成一张图片。 有时候需要把整个网站做成演示图片的时候用这个最方便了。
NULL 博文链接:https://pridesnow.iteye.com/blog/561995
为了方便在互联网上阅读,传输,以及保持内容不被...除了Doc和Docx格式,Word转JPG转换器也支持将富文本RTF格式,HTML和HTM网页格式,以及开放文档格式ODT(Open Document Format)作为输入格式转换成JPG等各种图片格式。
html中带有在线的图片,比如http://localhost:9090/images/58f82b3146ed8.jpg 转换成word后,离线场景也能正常打开图片。 将图片写入了word内部。
在C#MVC中时常需要将HTML页面直接转化为图片的形式让用户下载,本文就是直接分享的如何将html页面转化为jpg
本地图片使用二进制流存储到MySQL中,然后响应前端的传参,查询后可以显示在HEML网页中,相当于图片的简单上传和显示
C#实现网页快照,输入任意链接,在指定文件夹下生成对应的.jpg网页截图,且解决了截图白屏问题!
vue使用better-scroll实现横向滚动的方法实例 better-scroll的滚动原理和浏览器原生滚动原理是一样的,当子盒子的高度大于父盒子的高度,就会出现纵向滚动;同理,如果子盒子的宽度大于父盒子的宽度,那么就会出现...
程序能将多种图片格式,转换为base64编码。 可用于网页编辑等html5效果实现。 如果你在运行时感觉速度很慢,在delphi编辑环境中把 memo的scrollbars属性设置为 both 即可!
webp2jpg-免费在线图片格式转化器, 可将 jpeg、jpg、png、gif、 webp、svg、ico、bmp 文件转化为 jpeg、png、webp、webp 动画、gif 文件。 无需上传文件,本地即可完成转换! 源码特点: 无需上传,使用浏览器自身...
通过导入html文件将页面的内容渲染成jpg格式的图片
Bestecch.HtmlSnapLibrary.dll是一个.net2.0类库, 该组件支持webform和winform开发和控制台程序。该组件使用方便。能把整个网页快速转换成图片,图支持.jpg、.bmp、.gif等五种常用格式。
个人经典珍藏,史上最牛Asp.net将Html页面转Word(Aspose.Words)
本文实例讲述了Python使用正则表达式抓取网页图片的方法。分享给大家供大家参考,具体如下: #!/usr/bin/python import re import urllib #获取网页信息 def getHtml(url): page = urllib.urlopen(url) html = ...
预览图;https://z3.ax1x.com/2021/06/01/2nlCFI.jpg
本源码主要是ASP.net后台通过相应的类把word\excel\pdf\txt文件转化为html,将地址传回前端,前端获取地址,用iframe进行展现预览。