I have a LaTeX document that includes a plot of a large dataset generated with gnuplot. Everything’s fine, except that the resulting PDF is huge because of the enormous number of points in the plot. A quick fix for this would be to switch the gnuplot terminal from epslatex to png. Unfortunately, that also affects the text in the plot, which no longer matches the text in the document. What is really needed is a pnglatex terminal. Since that doesn’t exist, I hacked it.
The idea is to take advantage of the fact that the epslatex terminal already splits the text from the graphics. First, we convert the .eps file to a .png with ImageMagick:
convert -density 288 myplot.eps myplot.png
The density argument is the DPI at which to generate the PNG. This may need to be tweaked to minimize pixelation and aliasing artifacts. Depending on your PDF viewer, higher may not necessarily be better. Next, we change the generated .tex file to include our .png instead of the .eps:
sed -r 's:\\includegraphics\{([^}]+)\}:\\includegraphics[scale=0.25]{\1.png}:g' < myplot.tex > myplot-png.tex
The default DPI seems to be 72, so the scale argument should be 72 divided by the density argument to ImageMagick. Finally, include myplot-png.tex instead of myplot.tex in the main document.
Note that rasterization necessarily loses information, and the result is of lower quality than using the epslatex terminal. The resulting PDF can be much smaller, though, so the tradeoff may be worth it.
相关推荐
Help you convert bitmap file to Windows EMF or Meta Bitmap. An awesome software for 2D bitmap to vector converter.
本文将基于给定的代码片段,深入探讨“二维码生成BitMap图片”的相关知识点,包括二维码的基本概念、二维码的生成原理、以及如何利用Java语言实现二维码到BitMap图片的转换。 ### 二维码的基本概念 二维码(Quick ...
Displaying a large bitmap file on a dialog box, in its original size, is quite difficult in the VC++ environment. However, it is possible to ... 来源: http://www.codeguru.com/bitmap/ScrollBitmap.html
在Android开发中,Bitmap是处理图像的基本类,用于在内存中表示位图图像。当我们需要对图片进行裁剪、缩放或进行其他操作时,Bitmap提供了丰富的功能。本篇文章将详细探讨如何在Android环境下利用Bitmap来切割图片。...
软件开发网在此之前给大家介绍过...Glide.with(mContext).load(url).asBitmap().into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> gl
在处理图像时,我们可能会遇到需要在不同的数据类型之间转换的情况,比如从Bitmap到Stream,再到byte数组,最后再还原回Bitmap。这样的转换在上传图片、存储图片数据或在网络中传输时非常常见。本篇文章将详细介绍...
std::vector<Byte> BitmapToByteArray(CBitmap& bitmap) { // ... 上述步骤的具体实现 ... } ``` 这个函数可以被其他部分的代码调用来方便地完成Bitmap到Byte数组的转换。 在处理过程中,还需要注意一些额外的...
在Android开发中,Activity之间的数据传递是常见的操作,特别是在处理图像数据时,如Bitmap对象。Bitmap是Android系统中用于表示图像的重要类,它包含了图像的所有像素信息。在不同Activity之间传递Bitmap,通常是...
在Android开发中,Bitmap是用于处理图像的基本类,它代表了一个位图图像。有时我们需要将Bitmap对象保存到本地,例如用户拍摄的照片或者加载的网络图片,以便后续使用或分享。本篇文章将深入探讨如何在Android中将...
本教程将深入探讨如何在VC++中使用CStatic控件来加载并显示Bitmap图像。 Bitmap(位图)是Windows操作系统中常见的图像格式,它包含了像素数据,可以精确地表示图像的每一个细节。在VC++中,我们通常使用GDI...
Bitmap rotatedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true); ``` 除了旋转,我们还可以使用Matrix进行缩放操作。例如,将Bitmap按...
在C#.NET编程环境中,`Bitmap`类是用于处理图像的核心类,它允许开发者创建、加载、修改和显示位图图像。本篇文章将详细介绍`Bitmap`类的基本使用方法,包括其构造函数、属性、方法以及如何与其他图形组件交互。 1....
在Android开发中,Bitmap是处理图像数据的基本类,它用于表示位图图像。"bitmap上传图片demo"是一个示例项目,展示了如何利用Bitmap处理本地图片并进行上传,同时提供了将图片裁剪为圆形以适合作为头像的功能。在这...
"Android 中 Canvas 转换为 Bitmap" Android 中 Canvas 转换为 Bitmap 是一种常见的需求,especially 在需要将 Canvas 绘制的图形显示在 ImageView 中的情况下。在这篇文章中,我们将详细介绍如何将 Canvas 转换为 ...
而Bitmap图像则是一种常见的图像格式,广泛存在于Windows操作系统和其他多种环境中。在进行机器视觉项目时,有时我们需要将Bitmap图像转换为Halcon能识别的图像类型,即HObject,以便在Halcon中进行后续的图像分析和...
在Android开发中,处理`Bitmap`内存溢出问题是一个常见的挑战,尤其是在处理高分辨率或大尺寸图片时。当应用程序尝试加载或操作一张超出虚拟机内存预算的`Bitmap`时,系统会抛出`java.lang.OutOfMemoryError: bitmap...
`drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)`是`drawBitmap()`方法的一个重载版本,其参数含义如下: 1. **Bitmap bitmap**: 这是你要绘制的位图对象,通常是从资源文件、内存缓存或者直接创建的...
Bitmap newBitmap = new Bitmap(bitmap.Width, bitmap.Height, PixelFormat.Format32bppArgb); ``` 3. **遍历像素并复制**: 接下来,我们需要遍历原始Bitmap的每一个像素,将其转换为RGB32格式,并复制到新Bitmap中...
C#中的Bitmap类和Graphics类 C#中的Bitmap类和Graphics类是两种常用的图形处理类,它们之间存在一定的差异和联系。在本节中,我们将详细介绍Bitmap类和Graphics类的概念、方法和应用场景。 一、Bitmap类 Bitmap类...
在Android开发中,Bitmap对象是用于处理图像的主要类,但如果不妥善管理,它可能会引发“Out Of Memory”(OOM)错误。这是因为Android设备的内存有限,尤其是对于大型图像,加载到内存中会消耗大量资源。当应用无法...