精华内容
下载资源
问答
  • pdfbox将多页pdf转成多张长图片

    千次阅读 2018-11-03 15:02:31
    (pdfbox将pdf转成图片(jpg或者png)首先需要说明的几点事情功能由来引入jar包下面贴上代码关于产生2种报错信息的说明写在最后 首先需要说明的几点事情 本文是基于pdfbox2.0以上版本实现的 主要实现功能是将多页的...

    首先需要说明的几点事情

    1. 本文是基于pdfbox2.0以上版本实现的
    2. 主要实现功能是将多页的pdf文件转成1张png或者jpg图片,或者多张jpg图片
    3. 本文是借鉴将多页pdf转成1张长图片的方法修改

    功能由来

    最近项目要求能够实现office(word, excel,ppt)等的在线预览功能,思路是分2步走

    1. office组件转pdf,即是先将office组件转成pdf进行上传
    2. pdf转成长图片,即是将pdf转成长图片的形式,便于操作

    引入jar包

    1. 基于maven管理jar包的形式,如果没有使用maven的话,也可以去pdfbox官网查看
          <dependency>
              <groupId>org.apache.pdfbox</groupId>
              <artifactId>fontbox</artifactId>
              <version>2.0.1</version>
          </dependency>
          <dependency>
              <groupId>org.apache.pdfbox</groupId>
              <artifactId>pdfbox</artifactId>
              <version>2.0.1</version>
          </dependency>
          <dependency>
              <groupId>org.apache.pdfbox</groupId>
              <artifactId>pdfbox-tools</artifactId>
              <version>2.0.1</version>
          </dependency>
      

    下面贴上代码

    1. 这是将多页(至少超过50)pdf转换为多张长图片的代码
    2. 至于转成1张长图片(png)或者每一页pdf转一张图片,相似的例子有很多,我就不重复造轮子了
    public static void pdfToImage(String pdfPath) throws IOException {
           try {
                   /*图像合并使用参数*/
                   // 定义宽度
                   int width = 0;
                   // 保存一张图片中的RGB数据
                   int[] singleImgRGB;
                   // 定义高度,后面用于叠加
                   int shiftHeight = 0;
                   //保存每张图片的像素值
                   BufferedImage imageResult = null;
                   // 利用PdfBox生成图像
                   PDDocument pdDocument = PDDocument.load(new File(pdfPath));
                   PDFRenderer renderer = new PDFRenderer(pdDocument);
                   /*根据总页数, 按照50页生成一张长图片的逻辑, 进行拆分*/
                   // 每50页转成1张图片
                   int pageLength = 50;
                   // 总计循环的次数
                   int totalCount = pdDocument.getNumberOfPages() / pageLength + 1;
                   for (int m = 0; m < totalCount; m++) {
                       for (int i = 0; i < pageLength; i++) {
                           int pageIndex = i + (m * pageLength);
                           if (pageIndex == pdDocument.getNumberOfPages()) {
                               System.out.println("m = " + m);
                               break;
                           }
                           // 96为图片的dpi,dpi越大,则图片越清晰,图片越大,转换耗费的时间也越多
                           BufferedImage image = renderer.renderImageWithDPI(pageIndex, 96, RGB);
                           int imageHeight = image.getHeight();
                           int imageWidth = image.getWidth();
                           if (i == 0) {
                               //计算高度和偏移量
                               //使用第一张图片宽度;
                               width = imageWidth;
                               // 保存每页图片的像素值
                               // 加个判断:如果m次循环后所剩的图片总数小于pageLength,则图片高度按剩余的张数绘制,否则会出现长图片下面全是黑色的情况
                               if ((pdDocument.getNumberOfPages() - m * pageLength) < pageLength) {
                                   imageResult = new BufferedImage(width, imageHeight * (pdDocument.getNumberOfPages() - m * pageLength), BufferedImage.TYPE_INT_RGB);
                               } else {
                                   imageResult = new BufferedImage(width, imageHeight * pageLength, BufferedImage.TYPE_INT_RGB);
                               }
                           } else {
                               // 将高度不断累加
                               shiftHeight += imageHeight;
                           }
                           singleImgRGB = image.getRGB(0, 0, width, imageHeight, null, 0, width);
                           imageResult.setRGB(0, shiftHeight, width, imageHeight, singleImgRGB, 0, width);
                       }
                       System.out.println("m = " + m);
                       File outFile = new File(pdfPath.replace(".pdf", "_" + m + ".jpg"));
                       System.out.println(outFile.getName());
                       // 写图片
                       ImageIO.write(imageResult, "jpg", outFile);
                       // 这个很重要,下面会有说明
                       shiftHeight = 0;
                   }
                   pdDocument.close();
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }
    

    关于产生2种报错信息的说明

    1. javax.imageio.IIOException: Maximum supported image dimension is 65500 piexls
      在这里插入图片描asddad述
      产生这种错误的原因是我想将多页的pdf转成1张长图片(jpg格式会有,而png则不会)所致,经本人多次尝试,这个上限大概在50-60张之间,超过的话,基本100%会报这个错
    2. 数组下标越界异常
      在这里插入图片描述
      产生这个错误的原因是因为上面的代码种,在写完1张图片后,未将shiftHeight置为0所致

    写在最后

    1. 抱歉是忘了参考哪位大神的了,如有雷同,请大神联系我;小弟一定加上你的连接
    2. 欢迎大家有问题在下面评论哈,相互交流,一起成长
    展开全文
  • Python如何获取JPG图片的长宽等信息

    万次阅读 2015-01-13 08:58:45
    使用PIL模块,windows安装包下载: ...使用方法 # coding: utf8 # 获取指定图片的长和宽 from PIL import Image img = Image.open("img.jpg") print img.size 运行结果: (52, 54)

    PIL模块地址:

    http://www.pythonware.com/products/pil/

    下载安装PIL:Ubuntu 上 python PIL库的安装

    如果是在LINUX下,编译过程中遇到到错误找不到“Python.h”头文件,请先sudo apt-get install python-dev。

    PIL的示例代码:

    # coding: utf8
    # 获取指定图片的长和宽
    from PIL import Image
    img = Image.open("img.jpg")
    print img.size
     
    运行结果:
    (52, 54)


    展开全文
  • 需求:由于个别列信息,导致整个表格显示很不美观,需要将表格设置成固定宽度,超出部分显示省略号,鼠标悬停显示全部信息。 如果只看结果,可略过以下文字部分,直接按照红色文字步骤进行: 首先想到的是html...

    需求:由于个别列信息过长,导致整个表格显示很不美观,需要将表格设置成固定宽度,超出部分显示省略号,鼠标悬停显示全部信息。

    如果只看结果,可略过以下文字部分,直接按照红色文字步骤进行:

    首先想到的是html的title样式,当然也是最适合的,但是由于bootstrap table的html都是封装的,不可能完全获取dom元素进行更改,当然也不是最明智的方法,

    尝试上网上找一些相关的   模拟用css模拟title样式的代码,但是几乎全是一个版本,而且与本需求也不符合,而且bootstrap table中又没有悬停事件,当然直接操作dom元素不考虑。

    最后想到的方法是  formatter  方法,首先要给该列添加样式,让超出部分显示省略号

    1.添加样式

    .colStyle {
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

    在bootstrap table配置部分的columns里如下写

    2.为bootstrap进行配置

    {field: 'params', title: "参数",width:300,class:'colStyle',formatter:paramsMatter},

    至此,样式已经引入,该列宽度为300px,超出部分显示省略号,如图

    剩下的就是paramsMatter函数了,之所以用formatter是因为这个方法只是对页面显示做更改,并不会影响数据的获取等的使用。

    接下来就是paramsMatter函数的书写了,我的方法是在表格的td里面再加一个span标签,给span加title

    3.书写formatter函数

    function paramsMatter(value, row, index) {
        var values = row.params;//获取当前字段的值
        //替换空格,因为字符串拼接的时候如果遇到空格,会自动将后面的部分截掉,所有这里用html的转义符
        //&nbsp;代替
        values = values.replace(/\s+/g,'&nbsp;')
        return "<span title="+values+">"+row.params+"</span>"
    }

    4. 页面显示

    但是发现显示并不是特别好,如果能够换行就可以了,首先想到的是匹配  },   然后加一个\n换行,但是发现span是字符串拼接的方法拼上的,遇到换行就自动截掉了,又想到用<br>,但是发现在title中并不能实现,由于是return方式添加的,又不能直接操作dom节点给title赋值。

    最后想到的是干脆创建一个dom节点

    5.改进版,解决不能自定义换行问题

      function paramsMatter(value, row, index) {
           var values = row.params;
           values = values.replace(/\s+/g,'&nbsp;')//替换空格
           values = values.replace(/\},/,'},\n');//换行
           var span=document.createElement('span');
           span.setAttribute('title',values);
           span.innerHTML = row.params;
           return span.outerHTML;
      }

    注:由于我这个项目需要,所以需要每一个对象单独显示一行,因为数据太长了,如果你的项目没有显示内容没有  [{},{}]这种格式,可以将替换换行和空格的去掉 

     function paramsMatter(value, row, index) {
           var values = row.params;
           var span=document.createElement('span');
           span.setAttribute('title',values);
           span.innerHTML = row.params;
           return span.outerHTML;
      }

    直接这样即可

    【右上角点个赞,谢谢】

    展开全文
  • iPhone 快捷指令 拼接长图

    万次阅读 2020-11-30 21:55:33
    获取捷径:点击此处 扫码获取: 使用方法: 在相册中选择要拼接的图片后,点击分享,列表下方选择“拼接长图” 也可以将捷径固定到桌面,直接打开,即可选取照片进行拼接 代码: ...

    获取捷径:点击此处

    扫码获取:

    使用方法:

    在相册中选择要拼接的图片后,点击分享,列表下方选择“拼接长图”

    也可以将捷径固定到桌面,直接打开,即可选取照片进行拼接

    效果:

    代码:

    附:

    iPhone 快捷指令 合成GIF

    iPhone 快捷指令 查看图像信息

    iPhone 快捷指令 文本朗读

    iPhone 快捷指令 文件转换

    iPhone 快捷指令 解决校园网不弹窗的问题

    展开全文
  • 有时候我们想要在网页上截取有用信息时我们可以使用QQ截屏快速完成,但是又时需要截取网页长图是就比较麻烦了,那么现在我们就来学习下整个网页长图该怎样截取。 快捷键的使用能够让我们对电脑更加方便的应用,...
  • RNN推导参考:...说明:对于RNN为什么会学不到距离信息,可以说是RNN会遇到梯度消失的问题,梯度消失的问题,本质上还是使用B
  • Android加载长图滑动显示

    千次阅读 2019-05-18 10:22:58
    1、记录下学到的Android加载长图写法以备后用 首先准备一张长图。这里把图片先放到项目的 assets文件夹下:命名为big.png 然后开始自定义显示长图的view :BigView import android.content.Context; import ...
  • 如果是选中的图片,则内容html是图片的二进制,并且还比较,websocket自动关闭了,提示错误是:**发送内容太**? 有大神做过没有呢,请指教!!!!! 其他的都还好,就是内容太,websocket连接会被强制...
  • 默认的纸张大小是 A4,左边的预览会显示打印此网页需要多少张 A4纸 点击纸张大小 -管理自定义大小 调整纸张高度和宽度 接着点击左下角的 PDF 下拉选框,单击保存为 PDF OK,一张截图就制作好啦! ...
  • 最近项目中需要对上传的本地视频和从其他服务器拷贝的视频进行校验功能,校验主要包括视频的时,大小,格式等信息,那么如何获取这些信息呢? 思路 本地视频,从过文件流读取,再通过FFMpeg.exe获取到相关视频信息; ...
  • //获取屏幕尺寸信息 mWindowWidth = getMeasuredWidth(); mWindowHeight = getMeasuredHeight(); mRect.left = 0; mRect.top = 0; //设置显示区域 mRect.right = mImageWidth > mWindowWidth ? ...
  • 用过sina微博客户端的同学都知道,它里面有一个长图功能。 需求是可以显示比如10000X10000(px)的图片。 如果你直接用bitmap加载图片文件(或者是从inputstream获取到,然后转化为bitmap),在用imageview.setBitmap...
  • 之前,我做了一个天猫评论信息的抓取,和评论图片的下载,不过那次是将信息全部存入数据库后再从数据库提取图片信息进行下载,这次我做了一个信息抓取和图片下载的二合一升级版。 本次以京东nike自营店为目标, ...
  • 比如说,有个mat文件,里面存放着一张的RGB通道信息,如何将其合成并且转换成一张图片来输出呢? 图片的显示只要有RGB信息就OK啦,主要是如何把信息组合在一起并且显示出来。 直接上code: I=load('matlab.mat...
  • CTF之隐写术--LSB一张图片隐藏的信息

    千次阅读 2018-11-13 18:33:46
    CTF之隐写术--LSB一张图片隐藏的信息
  • android提取视频多张图片和视频信息

    万次阅读 热门讨论 2017-04-04 23:03:15
    android提取视频多张图片和视频信息(一)话说2016年的直播比较火,2017年短视频又火了。但对于开发者来说隐藏在这背后的技术才是我们所关心的,毕竟我们是靠技术吃饭的。 现在在安卓中多媒体服务比较强大,而与...
  • 图片说明加入到jpg文件内,最简便的方法是:用16进制编辑器(或编个读写程序)直接把这部分信息写入jpg文件保存,不会对图像有任何影响。 在jpg文件开始两字节是FF D8,可以在它们后面插入以下35字节(如果在FFD8...
  • 今天运营部返回了一个app商家端的问题:商品详情页只有一张超长的大的时候,显示会变模糊。 看了下之前的代码,直接使用ImageView来显示,并未做什么特殊处理,包括ScaleType等都没有设置,所以怀疑是没有根据屏幕...
  • Android截屏与WebView长图分享经验总结

    千次阅读 2017-05-19 18:44:28
    一、概述最近在做新业务需求的同时,我们在 Android 上遇到了一些之前没有碰到过的问题,截屏分享、 WebView 生成长图以及长图在各个分享渠道分享时图片模糊甚至分享失败等问题,在这过程中踩了很多坑,到目前为止绝...
  • 【Android】Glide 处理长图的显示

    千次阅读 2018-02-28 10:05:32
    问题:glide 显示长图会很模糊Log日志为:Bitmap too large to be uploaded into a texture (680x7080, max=4096x4096)因为其它图片都要完整显示的,所以不能用.centerCrop(),那么只能考虑其它方法了。从网上找了 ...
  • 近期项目中遇到了一个问题,就是 glide 显示长图会报错(Bitmap too large to be uploaded into a texture (620x7878, max=4096x4096))
  • iPhone 快捷指令 查看图像信息

    千次阅读 2020-11-30 22:25:51
    获取捷径:点击此处 扫码获取: 使用方法: 在相册中选择图片,点击分享,列表下方选择“查看图像信息” 示例 代码:
  • 主要包括:音频信息,读取内容,获取时,切割音频,pcm与wav互转 获取音频信息: with wave.open(wav_path, "rb") as f: f = wave.open(wav_path) print(f.getparams()) 返回内容为: 声道,采样...
  • 这条博客我们来介绍小程序中怎么生成长图,如何预览,并且在长图中绘制小程序码,以及小程序码中间的默认logo换成自定义logo。 ①首先在页面上准备一个画布,画布的宽度设定,高度不定。代码如下: ...
  • jupyter notebook中的代码和运行结果 怎样才能 保存为长图?谢谢。 我尝试了:1、转PDF,要安装很多包,没有继续装;2、按F12,ctrl+shift+P,等,只不能保存单页面,无法保存多个页面。
  • 谈谈http的连接和websocket的连接

    千次阅读 2019-07-31 18:37:12
    缘起 了解http的人都知道,...注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦 我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息, 最典型的场景就是聊天室 。轮询的效率...
  • C# 获取图片的EXIF 信息

    万次阅读 热门讨论 2010-04-10 12:48:00
    EXIF信息是由数码相机在拍摄过程中采集一系列的信息,然后把信息放置在jpg文件的头部,也就是说EXIF信息是镶嵌在JPEG图像文件格式内的一组拍摄参数,主要包括摄影时的光圈、快门、ISO、日期时间等各种与当时摄影条件...
  • 图片测距实验

    千次阅读 2017-04-20 10:26:00
    实验背景本文是一个小实验的结果,针对的问题是是否可以根据图片交通的视频得到汽车的行驶速度,更进一步其实是得到图片上的某段实际距离。...采用方法这种情况要利用交通图片中的可用的信息。 众所周知,
  • FAT32的文件名处理

    千次阅读 2015-04-16 19:44:29
    文件系统的文件名信息主要是在目录项中进行记录的,一般情况下(非文件名,文件名长度小于8个字节),一个目录项(Directory Entry)单元由32字节组成,各字节的表征如1示。 可见此处一个目录项中可以存放的文件名...
  • java获取上传视频的时

    千次阅读 热门讨论 2019-06-26 09:55:21
    可以是视频或图片。 自动获取视频时: 1、获取相关 jar包 。可上传到私服中,提取地址,提取码:0c8m 2、部分业务代码 (还可以获取到其他参数信息视频高度,宽度,大小等,根据需要自行获取): import it....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,383,319
精华内容 553,327
关键字:

信息长图