PSTricks -> 我如何编译图形/图形以获得背景透明的 PNG/JPG?

PSTricks -> 我如何编译图形/图形以获得背景透明的 PNG/JPG?

如何在具有透明背景的 PNG/GIF/JPG 图形中获取此图形?

\documentclass[12pt,a4paper,x11names]{report}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{latexsym}
%\usepackage[x11names,table]{xcolor} % colores por nombres y tablas. dddd%

\usepackage{datetime}
\settimeformat{ampmtime}

\usepackage{hyperref} %Dudo si este paquete puede dar error al compilar con LATEX (no PDFLATEX)
\hypersetup{colorlinks=true, urlcolor=blue}


\headheight=15pt  %/ MARGENES y otros

\usepackage[spanish]{babel}
\usepackage[T1]{fontenc}

%--------   Paquetes para uso con PSTricks  -----------------------------------------------%
\usepackage{pstricks}
% -------- Paquetes de pst-all \usepackage{pst-all}   paquete pstricks para las figuras en postcript
\usepackage{pst-plot}
\usepackage{pst-node}
\usepackage{pst-tree}
\usepackage{pst-grad}
\usepackage{pst-coil}
\usepackage{pst-text}
\usepackage{pst-3d}
\usepackage{pst-eps}
\usepackage[tiling]{pst-fill}
\usepackage{pstricks-add}
\usepackage{multido}
% ---- Fin Paquetes de pst-all
\usepackage{pst-fr3d}               % paquete pstricks para las figuras en postcript
\usepackage{pst-infixplot,pst-math} % paquete pstricks para las figuras en postcript
%%%%%   Paquetes para definir los "ladillos" de la parte superior de las páginas, los capítulos, las secciones y más cosas.
%%%%% La explicación de cómo se hace todo esto viene en las instrucciones que están incluidas en la instalacion.
\usepackage[clearempty,explicit,pagestyles]{titlesec}
\usepackage{titletoc}
%%%% Paquete para hacer los gráficos.   % OJO.- En alguna compilación me daba incompatibilidad de esta opción dvips con la clase article %
\usepackage[dvips]{graphicx}  % OJO.- HE QUITADO [dvips] antes de {graphicx} porque me daba error , y me pedía poner [dvips] en la clase principal, pero aparecía atenuado en article, como si no aceptase esta opción. Cargar despues de paquetes PSTricks
%--------   Fin Paquetes para uso con PSTricks  -------------------------------------------%

\usepackage{graphicx}    % paquete para insertar gráficos
\usepackage{epstopdf}    % para que funcioneen los eps con pdflatex
\usepackage{multicol}    % para incluir columnas multiples

\usepackage{marginnote}  % para crear notas al margen

\usepackage{mathpazo}    % para usar la fuente MathPAzo que me gusta más, yse lee bien.

\usepackage{fix-cm}  
\usepackage{anyfontsize} %

\usepackage{fancyhdr}   % Paquete para cabeceras y pies en cada página.
\pagestyle{fancy}       % seleccionamos un estilo

\renewcommand{\labelenumi}{\arabic{enumi}.- }   % personalizado a mi gusto los itemize.

\graphicspath{{G:/}{G:/Rafa/TEX Arquivos/}}

\settimeformat{ampmtime} % para incrustar fecha y hora en los documentos.

\spanishdecimal{.}       % Para usar el punto decimal, y no confundirlo con las comas.

% ///////////////////////////////////////////////////////////////////////////// %
%\cfoot{\includegraphics[width=11cm]{heado2}} % imagen centro del pie
\lhead{M.I.} % texto izquierda de la cabecera
%\chead{\today \;-\;  \currenttime } % texto centro de la cabecera
\rhead{Right Header} % número de página a la derecha
% - - -  - - - - - - - - - - -  - - - - - - - - - - -  - - - - - - - - %
\lfoot{{\gray{\footnotesize Compilado: \today \;-\;  \currenttime}}} % texto izquierda del pie
\rfoot{Página \thepage}
% texto derecha del pie
\cfoot{} % texto central del pie
\renewcommand{\headrulewidth}{0.4pt} % grosor de la línea de la cabecera
%\renewcommand{\footrulewidth}{0.1pt} % grosor de la línea del pie
% ///////////////////////////////////////////////////////////////////////////// %
%\title{Foro }
%\author{Rafa S.F.}
%\date{\today}
% //////////////////////////////////////////////// %

\begin{document}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   Figura 2.1
\begin{figure}[h]
\begin{center}
\psset{unit=.6cm,linewidth=1pt,linecolor=black,nodesep=3pt,arrowscale=1.3,arrows=->,arrowsize=4pt}\small
 \begin{pspicture}*(-.5,0)(9.5,9.5)
\psframe[fillcolor=white,fillstyle=solid,linestyle=none](-.5,0)(9.5,9.5)

\rput(1,3){$\circlenode{A}{\textcolor{blue}{a}}$}
\rput(3,6){$\circlenode{B}{\textcolor{blue}{b}}$}
\rput(5,1){$\circlenode{C}{\textcolor{blue}{c}}$}
%
\ncline{->}{A}{B}\naput{\small $43$}
\ncarc[arcangleB=300]{->}{C}{B}\naput{\small $12$}
%
\ncarc{->}{C}{A}\naput{\small $23$}

%


 \end{pspicture}
\end{center}
\caption{prueba}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}

答案1

使用 ImageMagick:

convert -density 300x300 simplenetwork02_stack.pdf -transparent white simplenetwork02_stack.png

要仅将 PSTricks 图形作为输出,请添加

\usepackage[tightpage,active]{preview}
\PreviewEnvironment{pspicture}

到序言部分。您可能需要调整pspicture大小以获得紧密的图形:

\begin{pspicture}*(0,0)(6,7)
%\psframe[fillcolor=white,fillstyle=solid,linestyle=none](-.5,0)(7.5,7.5)

在此处输入图片描述

答案2

默认情况下,提供的画布pspicture是透明的。如果您用其他颜色填充它,则psframe[fillstyle=solid,fillcolor=white]...画布不再透明。

\documentclass[pstricks,border=12pt]{standalone}% set border=0pt if you don't want to have borders.
\begin{document}
\begin{pspicture}[showgrid=true](3,3)
    \pscircle(1.5,1.5){1}
\end{pspicture}
\end{document}

编译上述代码以获得 PDF 输出。然后使用 ImageMagick 将其转换为具有透明度的 PNG,如下所示。

convert -density 100 -alpha on filename.pdf filename.png

输出为

在此处输入图片描述

这里用了引号 markdown,透明效果看得更清楚,背景看起来有点黄,证明真的是透明的!

评论:

-alpha有 3 个互斥的选项:(on启用透明度)、off(禁用透明度但输出效果不佳)和remove(删除透明度但输出效果良好)。

警告:

AlexG 解释和建议的选项-transparent不会产生如下的良好输出。

以下是输入。红色区域将被转换为透明。

在此处输入图片描述

用 转换后convert -density 300 -transparent red in.pdf out.png,输出如下。

在此处输入图片描述

红色区域的边界上仍有红色像素。你满意吗?我不满意。

相关内容