javaweb pdf流转jpg流怎么 *** 作?

javaweb pdf流转jpg流怎么 *** 作?,第1张

package pdf

import java.awt.Image

import java.awt.Rectangle

import java.awt.image.BufferedImage

import java.io.File

import java.io.FileOutputStream

import java.io.IOException

import java.io.RandomAccessFile

import java.nio.ByteBuffer

import java.nio.channels.FileChannel

import javax.swing.SwingUtilities

import com.sun.image.codec.jpeg.JPEGCodec

import com.sun.image.codec.jpeg.JPEGEncodeParam

import com.sun.image.codec.jpeg.JPEGImageEncoder

import com.sun.pdfview.PDFFile

import com.sun.pdfview.PDFPage

public class PdfToJpg {

public static void setup() throws IOException {

// 加载一个pdf从一个字节缓冲区

File file = new File("D:\\yangliu\\test.pdf")

RandomAccessFile raf = new RandomAccessFile(file, "r")

FileChannel channel = raf.getChannel()

ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0,

channel.size())

PDFFile pdffile = new PDFFile(buf)

System.out.println("携胡茄页数:" + pdffile.getNumPages())

String getPdfFilePath = System.getProperty("user.dir") + "\\pdfPicFile"

System.out.println("getPdfFilePath is :" + getPdfFilePath)

for (int i = 1i <pdffile.getNumPages()i++) {

// 画第一页到一个图像

PDFPage page = pdffile.getPage(i)

// 获得宽度和高度的文件在默认的变焦

Rectangle rect = new Rectangle(0, 0, (int) page.getBBox()

.getWidth(), (int) page.getBBox().getHeight())

/做告/ 生成图像

Image img = page.getImage(rect.width, rect.height, rect, null,

true, true)

BufferedImage tag = new BufferedImage(rect.width, rect.height,

BufferedImage.TYPE_INT_RGB)

tag.getGraphics().drawImage(img, 0, 0, rect.width, rect.height,

null)

// 输出到文件流

FileOutputStream out = new FileOutputStream(getPdfFilePath + "\\"

+ i + ".jpg")

System.out.println("成功保存图片到:"+getPdfFilePath+"辩察\\"+i+".jpg")

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out)

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(tag)

param.setQuality(1f, false)//1f是提高生成的图片质量

encoder.setJPEGEncodeParam(param)

encoder.encode(tag)// JPEG编码

out.close()

}

}

public static void main(final String[] args){

SwingUtilities.invokeLater(new Runnable() {

public void run() {

try {

PdfToJpg.setup()

} catch (IOException e) {

e.printStackTrace()

}

}

})

}

}

//从流中还原图片

Image image = Image.FromStream(你获取的图片流和搜纳)  

//显示图片唤没

PictureBox 漏陪pic = new PictureBox()

pic.Image = image

//保存图片

image.Save(@"c:\pic.jpg")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12228524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存