less copy protection, more size visualization
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

118 рядки
2.5 KiB

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