Processing 我能否以与处理中的尺寸不同的分辨率保存草图?

Processing 我能否以与处理中的尺寸不同的分辨率保存草图?,processing,Processing,我需要打印一张草图,为此我需要将它保存在一个大分辨率上。至少5000px 5000px。问题是我不能用那样的尺寸画草图。是否有任何方法可以以不同于草图的分辨率保存帧size() 为了保存,我正在使用: void mousePressed(){ save("myfile-"+hour()+""+minute()+""+second()+".tif"); } 任何小费都将不胜感激。 谢谢选项1:只需像现在一样保存它们,然后在处理之外缩放它们。您可以在Windows中通过右键单击并转到“调整图片

我需要打印一张草图,为此我需要将它保存在一个大分辨率上。至少
5000px 5000px
。问题是我不能用那样的尺寸画草图。是否有任何方法可以以不同于草图的分辨率保存帧
size()

为了保存,我正在使用:

void mousePressed(){
  save("myfile-"+hour()+""+minute()+""+second()+".tif");
}
任何小费都将不胜感激。
谢谢

选项1:只需像现在一样保存它们,然后在处理之外缩放它们。您可以在Windows中通过右键单击并转到“调整图片大小”来执行此操作,也可以使用类似的方法。这样做的好处是根本不必更改草图,而且您可能能够使用更好的缩放算法来消除难看的大小调整瑕疵

选项2:创建一个与屏幕大小相同的
PImage
。然后将
PImage
的像素设置为屏幕像素。然后可以放大该图像并保存它。它可能看起来像这样:

void setup(){
  size(100, 100);
}

void draw(){
  background(0);
  ellipse(mouseX, mouseY, 20, 20);
}

void mousePressed(){
 PImage img = createImage(100, 100, RGB);
 img.set(0, 0, get());
 img.resize(1000, 1000);
 img.save("myfile-"+hour()+""+minute()+""+second()+".tif");
}

选项1:只需像现在一样保存它们,然后在处理之外缩放它们。您可以在Windows中通过右键单击并转到“调整图片大小”来执行此操作,也可以使用类似的方法。这样做的好处是根本不必更改草图,而且您可能能够使用更好的缩放算法来消除难看的大小调整瑕疵

选项2:创建一个与屏幕大小相同的
PImage
。然后将
PImage
的像素设置为屏幕像素。然后可以放大该图像并保存它。它可能看起来像这样:

void setup(){
  size(100, 100);
}

void draw(){
  background(0);
  ellipse(mouseX, mouseY, 20, 20);
}

void mousePressed(){
 PImage img = createImage(100, 100, RGB);
 img.set(0, 0, get());
 img.resize(1000, 1000);
 img.save("myfile-"+hour()+""+minute()+""+second()+".tif");
}
我建议大家看看它的示例(处理>示例>库>pdf)。 Bellow是它附带的基本鼠标按键示例,稍微调整大小为5000x5000

/**
 * Mouse Press. 
 * 
 * Saves one PDF of the contents of the display window 
 * each time the mouse is pressed.
 */


    import processing.pdf.*;

    boolean saveOneFrame = false;

    void setup() {
      size(500, 500);
      frameRate(24);
    }

    void draw() {
      if(saveOneFrame == true) {
        size(5000,5000);
        beginRecord(PDF, "Line.pdf"); 
      }

      background(255);
      stroke(0, 20);
      strokeWeight(20.0);
      line(mouseX, 0, width-mouseY, height);

      if(saveOneFrame == true) {
        endRecord();
        saveOneFrame = false;
        size(500,500); 
      }
    }

    void mousePressed() {
      saveOneFrame = true; 
    }
如果你每隔一段时间就要存钱,这应该行得通。 矢量PDF应该比放大光栅图像更适合打印。 即使将PDF文件保存为500x500,也可以以矢量格式放大,而不会造成任何质量损失

如果出于某种原因,您需要保存非常大的打印并尽可能快地运行您的程序,这将有点复杂,但并非不可能。 可以将每个绘制命令序列化为单独线程中的文件(这样动画线程就不会断断续续)。该文件可以在单独的程序中读取,该程序可以简单地读取每一条指令并将其呈现为大规模pdf。您可以在数字绘画系统的实践中看到这一概念:

我建议看一看它的示例(处理>示例>库>pdf)。 Bellow是它附带的基本鼠标按键示例,稍微调整大小为5000x5000

/**
 * Mouse Press. 
 * 
 * Saves one PDF of the contents of the display window 
 * each time the mouse is pressed.
 */


    import processing.pdf.*;

    boolean saveOneFrame = false;

    void setup() {
      size(500, 500);
      frameRate(24);
    }

    void draw() {
      if(saveOneFrame == true) {
        size(5000,5000);
        beginRecord(PDF, "Line.pdf"); 
      }

      background(255);
      stroke(0, 20);
      strokeWeight(20.0);
      line(mouseX, 0, width-mouseY, height);

      if(saveOneFrame == true) {
        endRecord();
        saveOneFrame = false;
        size(500,500); 
      }
    }

    void mousePressed() {
      saveOneFrame = true; 
    }
如果你每隔一段时间就要存钱,这应该行得通。 矢量PDF应该比放大光栅图像更适合打印。 即使将PDF文件保存为500x500,也可以以矢量格式放大,而不会造成任何质量损失

如果出于某种原因,您需要保存非常大的打印并尽可能快地运行您的程序,这将有点复杂,但并非不可能。 可以将每个绘制命令序列化为单独线程中的文件(这样动画线程就不会断断续续)。该文件可以在单独的程序中读取,该程序可以简单地读取每一条指令并将其呈现为大规模pdf。您可以在数字绘画系统的实践中看到这一概念:


您每秒只保存一张图像?是的,我只需要一张用于打印的图像。我的想法是,当我点击草图时,它将以高分辨率保存。你每秒只保存一张图像?是的,我只需要一张图像,我将用于打印。我的想法是,当我点击草图时,它将以很大的分辨率保存它。谢谢!我选择了第二个选项,因为有时候ImageMagic在将文件转换为向量时可能有点不精确。谢谢!谢谢我选择了第二个选项,因为有时候ImageMagic在将文件转换为向量时可能有点不精确。谢谢!非常感谢乔治。我将再次测试这个解决方案,因为我记得我在研究时尝试过它,但从未在pdf中获得与我所看到的相同的质量。我会试试你的代码,让你知道。谢谢别担心,让我知道你进展如何。我猜您主要使用绘图命令,而不是像素,对吗?是的,实际上,与您发布的示例类似。我正在将JPG转换为图纸。像这个草图一样,再次感谢。这应该不是一个大问题,因为您链接到的示例代码只是对像素的亮度进行采样,粒子独立移动,因此绘制指令可以以高分辨率渲染(如果图像不是,则事件)…只需缩放坐标(使用
scale()
在呈现大pdf文件时,可以轻松完成这项工作)构图不错!我知道问题出在哪里了:PDF渲染器没有拾取您在
setup()
中设置的
noStroke()
。但是,您可以明确告诉PDF渲染器不使用笔划。只需将
beginRecord()
行替换为以下两行:
pgraphicsdpf pdf=(pgraphicsdpf)beginRecord(pdf,“Triangles.pdf”);pdf.noStroke()。非常感谢乔治。我将再次测试这个解决方案,因为我记得我在研究时尝试过它,但从未在pdf中获得与我所看到的相同的质量。我会试试你的代码,让你知道。谢谢别担心,让我知道你进展如何。我猜您主要使用绘图命令,而不是像素,对吗?是的,实际上,与您发布的示例类似。我正在将JPG转换为图纸。再次感谢这个草图。这应该不是一个大问题,因为您链接的示例代码只是采样像素的亮度和粒子的移动