*/
package jalview.gui;
-import java.util.Locale;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
import java.io.File;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import javax.swing.JPanel;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
import jalview.datamodel.StructureViewerModel.StructureData;
-import jalview.fts.service.alphafold.AlphafoldRestClient;
import jalview.gui.ImageExporter.ImageWriterI;
import jalview.gui.StructureViewer.ViewerType;
import jalview.structure.StructureCommand;
import jalview.structures.models.AAStructureBindingModel;
import jalview.util.BrowserLauncher;
import jalview.util.ImageMaker;
+import jalview.util.ImageMaker.TYPE;
import jalview.util.MessageManager;
import jalview.util.Platform;
+import jalview.util.imagemaker.BitmapImageSizing;
public class AppJmol extends StructureViewerBase
{
@Override
public void makePDBImage(ImageMaker.TYPE type)
{
+ makePDBImage(null, type, null,
+ BitmapImageSizing.nullBitmapImageSizing());
+ }
+
+ public void makePDBImage(File file, ImageMaker.TYPE type, String renderer,
+ BitmapImageSizing userBis)
+ {
int width = getWidth();
int height = getHeight();
+
+ BitmapImageSizing bis = ImageMaker.getScaleWidthHeight(width, height,
+ userBis);
+ float usescale = bis.scale;
+ int usewidth = bis.width;
+ int useheight = bis.height;
+
ImageWriterI writer = new ImageWriterI()
{
@Override
public void exportImage(Graphics g) throws Exception
{
- jmb.jmolViewer.renderScreenImage(g, width, height);
+ Graphics2D ig2 = (Graphics2D) g;
+ ig2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ if (type == TYPE.PNG && usescale > 0.0f)
+ {
+ // for a scaled image, this scales down a bigger image to increase
+ // resolution
+
+ ig2.scale(1 / usescale, 1 / usescale);
+ }
+
+ jmb.jmolViewer.antialiased = true;
+ jmb.jmolViewer.requestRepaintAndWait("image export");
+ jmb.jmolViewer.renderScreenImage(ig2, usewidth, useheight);
}
};
String view = MessageManager.getString("action.view")
.toLowerCase(Locale.ROOT);
ImageExporter exporter = new ImageExporter(writer,
getProgressIndicator(), type, getTitle());
- exporter.doExport(null, this, width, height, view);
+ exporter.doExport(file, this, width, height, view, renderer, userBis);
}
@Override