处理-无法显示svg文件的可能错误是什么?

时间:2018-12-15 12:20:14

标签: svg processing

我正在尝试使用Processing显示svg图像,但它只会显示空白。我认为代码没有问题,因为当我将shape更改为ellipse时,它可以完美地工作。我是否需要修改下面的任何代码以显示svg文件,或者是否有其他可能的原因使其无法显示?预先感谢!

Table table;
PFont f;
PShape leaf;
color [] c = {color(225, 50, 50), color(225, 100, 0), color(225, 225, 0), color(0, 150, 0), color(0), color(125)};
int i=0;

void setup() {
  size(1100, 500);
  background(255);
  table=loadTable("P3_data.csv", "header");
  leaf= loadShape("leaf.svg");
  leaf.disableStyle();
}


void draw() {
  stroke(255);
  strokeWeight(0.1);

  for (TableRow row : table.rows()) {
    int friend= (row.getInt("Friend"));
    int travel= (row.getInt("Travel"));
    int selfimprovement= (row.getInt("Self-improvement"));
    int club= (row.getInt("Club"));
    int schoolwork= (row.getInt("Schoolwork"));
    int money= (row.getInt("Money"));

    int total= 0;
    int [] Daily= {friend, travel, selfimprovement, club, schoolwork, money};
    for (int k=0; k<6; k++) {
      total +=Daily[k];
    }
    println (total);
      for (int j=0; j<6; j++) {

      for (int m=0; m< Daily[j]; m++) {
      fill(c[j]);
        ellipse((i%120)*10+10, (i/120)*40+10, 3*total, 4*total);
       //shape(leaf, (i%120)*10+10, (i/120)*40+10, 3*total, 3*total);
        total --;
      }
    }
    if (i>1095) {
      break;
    }
    i++;
  }
  save("sketch.png");
}

1 个答案:

答案 0 :(得分:1)

请参阅disableStyle()

的文档
  

形状加载有样式信息,该样式信息告诉他们如何绘制(颜色,笔划粗细等)。disableStyle()的{​​{1}}方法将关闭此信息。 PShape方法将其重新打开。

如果要显示 SVG 及其样式,则必须删除enableStyle()调用:

disableStyle
leaf = loadShape("leaf.svg");


如果要更改从* svg“文件生成的形状的笔触和填充颜色,则实际上必须禁用样式:

leaf.disableStyle();

在这种情况下,将使用当前的填充颜色和描边颜色绘制形状。这意味着所有形状都用相同的填充色填充并用相同的笔触颜色绘制:

leaf= loadShape("leaf.svg");
leaf.disableStyle();