Я работаю над плагином Photoshop, используя С# (с библиотекой объектов Adobe Photoshop). Я пытаюсь просмотреть все пиксели в моем активном документе, но с кодом, который у меня есть в настоящее время, требуется очень много времени даже для просмотра 1 строки пикселей в файле 256x256. Мне было интересно, может ли быть лучший (более быстрый) способ, чем использование ColorSampler для этого? (плагин С++?)
Вот что у меня сейчас есть: (http://forums.adobe.com/thread/290211) (С#, эквивалентный этому коду)
static void Main(string[] args)
{
ps.Application app = new ps.Application();
app.Preferences.RulerUnits = ps.PsUnits.psPixels;
ps.Document activeDoc = app.ActiveDocument;
double docWidth = activeDoc.Width;
double docHeight = activeDoc.Height;
double xPos = 0.0D;
double yPos = 0.0D;
activeDoc.ColorSamplers.RemoveAll();
var pixelLoc = new object[] { 0.0D, 0.0D };
ps.ColorSampler myColorSampler = activeDoc.ColorSamplers.Add(pixelLoc);
var stopwatch = Stopwatch.StartNew();
ps.SolidColor myColor;
double red;
double green;
double blue;
for (xPos = 0.0D; xPos <=docWidth - 1; xPos++)
{
myColor = myColorSampler.Color;
red = myColor.RGB.Red;
green = myColor.RGB.Green;
blue = myColor.RGB.Blue;
pixelLoc[0] = xPos;
myColorSampler.Move(pixelLoc);
}
Console.WriteLine(stopwatch.ElapsedMilliseconds); //11000 ms for 1 row of 256 pixels
Console.ReadLine();
}