Используя CATiledLayer, тонкую линию между плитками при рендеринге, плитки, созданные с помощью ImageMagick

Используя пример PhotoScroller от Apple и ImageMagick, мне удалось создать приложение для каталога.

Но у меня ошибка рендеринга. Изображения мозаики визуализируются с тонкой линией между ними.

Мой простой сценарий с использованием ImageMagick таков:

#!/bin/sh

file_list=`ls | grep JPG`

for i in 100 50 25; do 
 for file in $file_list; do
  convert $file -scale ${i}%x -crop 256x256 -set filename:tile "%[fx:page.x/256]_%[fx:page.y/256]" +repage +adjoin "${file%.*}_${i}_%[filename:tile].${file#*.}"
 done
done

Код от Apple тот же. Моя функция plot () сложна в вычислительном отношении, она может легко занять пять секунд. Это заставило GUI зависнуть, как и ожидалось. Я добавил код SwingUtilities.invokeLater , но он все еще зависает. Разве графический интерфейс не должен реагировать сейчас, когда я создаю отдельный поток для вычисления вертикальной нагрузки?

final ActionListener applyListener = new ActionListener() 
        {
            @CommitingFunction
            public void actionPerformed(ActionEvent arg0) 
            {
                /*Don't do plotting in the EDT :)*/
                SwingUtilities.invokeLater(new Runnable() 
                {
                    public void run() 
                    {
                        plot();
                    }
                });
            }
        };
5
задан Lii 13 January 2016 в 19:40
поделиться