|
|
@ -39,14 +39,17 @@ import com.fr.report.elementcase.TemplateElementCase; |
|
|
|
import com.fr.report.worksheet.FormElementCase; |
|
|
|
import com.fr.report.worksheet.FormElementCase; |
|
|
|
import com.fr.report.worksheet.WorkSheet; |
|
|
|
import com.fr.report.worksheet.WorkSheet; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO; |
|
|
|
import javax.swing.JComponent; |
|
|
|
import javax.swing.JComponent; |
|
|
|
import javax.swing.JPanel; |
|
|
|
import javax.swing.JPanel; |
|
|
|
import javax.swing.JScrollBar; |
|
|
|
import javax.swing.JScrollBar; |
|
|
|
import java.awt.BorderLayout; |
|
|
|
import java.awt.BorderLayout; |
|
|
|
|
|
|
|
import java.awt.Color; |
|
|
|
import java.awt.Dimension; |
|
|
|
import java.awt.Dimension; |
|
|
|
import java.awt.Graphics2D; |
|
|
|
import java.awt.Graphics2D; |
|
|
|
import java.awt.Transparency; |
|
|
|
import java.awt.Transparency; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
import java.awt.image.BufferedImage; |
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 表单中的ElementCase编辑面板 |
|
|
|
* 表单中的ElementCase编辑面板 |
|
|
@ -132,13 +135,22 @@ public class FormElementCaseDesigner |
|
|
|
int width = size.width; |
|
|
|
int width = size.width; |
|
|
|
int height = size.height; |
|
|
|
int height = size.height; |
|
|
|
|
|
|
|
|
|
|
|
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); |
|
|
|
// 使用TYPE_INT_RGB和new Color(255, 255, 255, 1)设置有透明背景buffer image,
|
|
|
|
|
|
|
|
// 使得创建出来的透明像素是(255, 255, 255, 1),而不是(0, 0, 0, 0)
|
|
|
|
|
|
|
|
// 这样不支持透明通道缩略图的旧设计器打开新设计器创建的模版时,就不会创建出拥有黑色背景的缩略图
|
|
|
|
|
|
|
|
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); |
|
|
|
Graphics2D g2d = image.createGraphics(); |
|
|
|
Graphics2D g2d = image.createGraphics(); |
|
|
|
// 创建一个支持透明背景的buffer image
|
|
|
|
// 创建一个支持透明背景的buffer image
|
|
|
|
image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT); |
|
|
|
image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT); |
|
|
|
g2d.dispose(); |
|
|
|
g2d.dispose(); |
|
|
|
g2d = image.createGraphics(); |
|
|
|
g2d = image.createGraphics(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 使用TYPE_INT_RGB和new Color(255, 255, 255, 1)设置有透明背景buffer image,
|
|
|
|
|
|
|
|
// 使得创建出来的透明像素是(255, 255, 255, 1),而不是(0, 0, 0, 0)
|
|
|
|
|
|
|
|
// 这样不支持透明通道缩略图的旧设计器打开新设计器创建的模版时,就不会创建出拥有黑色背景的缩略图
|
|
|
|
|
|
|
|
g2d.setColor(new Color(255, 255, 255, 1)); |
|
|
|
|
|
|
|
g2d.fillRect(0, 0, (int) size.getWidth(), (int) size.getHeight()); |
|
|
|
|
|
|
|
|
|
|
|
Grid grid = this.elementCasePane != null ? this.elementCasePane.getGrid() : null; |
|
|
|
Grid grid = this.elementCasePane != null ? this.elementCasePane.getGrid() : null; |
|
|
|
if (grid != null) { |
|
|
|
if (grid != null) { |
|
|
|
boolean oldTranslucent = grid.isTranslucent(); |
|
|
|
boolean oldTranslucent = grid.isTranslucent(); |
|
|
@ -148,6 +160,8 @@ public class FormElementCaseDesigner |
|
|
|
grid.setTranslucent(oldTranslucent); |
|
|
|
grid.setTranslucent(oldTranslucent); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ImageIO.write(image, "png", new File("/Users/Starryi/test.png")); |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
} |
|
|
|
} |
|
|
|