less copy protection, more size visualization
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

113 lines
2.4 KiB

  1. var doc = app.activeDocument;
  2. var layers = doc.layers;
  3. var traces = []
  4. settings = [
  5. {
  6. name: "Light",
  7. color: 0x4d,
  8. threshold: 128
  9. },
  10. {
  11. name: "Medium",
  12. color: 0x33,
  13. threshold: 96
  14. },
  15. {
  16. name: "Dark",
  17. color: 0x1a,
  18. threshold: 64
  19. },
  20. {
  21. name: "Black",
  22. color: 0x00,
  23. threshold: 128
  24. }
  25. ]
  26. for (var j=0; j<doc.layers.length; j++) {
  27. var candidate = doc.layers[j];
  28. if (candidate.name.indexOf("Background") >= 0) {
  29. candidate.remove()
  30. break
  31. }
  32. }
  33. for (var i=0; i<settings.length; i++) {
  34. var item = settings[i];
  35. var layer = null;
  36. for (var j=0; j<doc.layers.length; j++) {
  37. var candidate = doc.layers[j];
  38. if (candidate.name.indexOf(item.name) >= 0) {
  39. layer = candidate;
  40. break;
  41. }
  42. }
  43. if (layer === null) {
  44. continue;
  45. }
  46. var raster = layer.pageItems[0]
  47. var pluginRef = raster.trace()
  48. var trace = pluginRef.tracing
  49. var options = trace.tracingOptions
  50. options.tracingMode = TracingModeType.TRACINGMODEBLACKANDWHITE
  51. options.threshold = item.threshold
  52. options.ignoreWhite = true
  53. options.noiseFidelity = 10
  54. options.corderFidelity = 0.5
  55. options.pathFidelity = 75
  56. options.tracingMethod = TracingMethodType.TRACINGMETHODABUTTING
  57. options.snapCurvesToLines = false
  58. var traced = trace.expandTracing();
  59. traces.push(traced);
  60. var toSet = []
  61. for (var j=0; j < traced.pathItems.length; j++) {
  62. toSet.push(traced.pathItems[j])
  63. }
  64. for (var j=0; j < traced.compoundPathItems.length; j++) {
  65. for (var k=0; k < traced.compoundPathItems[j].pathItems.length; k++)
  66. {
  67. toSet.push(traced.compoundPathItems[j].pathItems[k])
  68. }
  69. }
  70. for (var j=0; j< toSet.length; j++) {
  71. var thing = toSet[j]
  72. var color = new RGBColor()
  73. color.red = item.color
  74. color.green = item.color
  75. color.blue = item.color
  76. thing.fillColor = color
  77. }
  78. }
  79. for (var i = 0; i < traces.length; i++) {
  80. traces[i].selected = true
  81. }
  82. app.executeMenuCommand("group")
  83. doc.fitArtboardToSelectedArt(0)
  84. var parts = doc.name.slice(0, -4).split("_")
  85. var filename = parts[1]
  86. var filepath = "/Users/crux/furry/macrovision/media/characters/" + parts[0] + "/" + filename
  87. doc.exportFile(File(filepath), ExportType.SVG)