2013-12-04 3 views
0

Я разрабатываю приложение iOS с помощью Rubymotion. Я использую превосходную библиотеку под названием GPUImage, и мне нужно вырезать квадрат с размером 320 x 320 (в квадрате). Я знаю, что я могу использовать его как это:Как преобразовать нормальный CGRectMake в единичные координаты?

source = GPUImagePicture.alloc.initWithImage(original) 

filter = GPUImageCropFilter.alloc.init 
filter.setCropRegion(CGRectMake(0.0, 0.0, 1, 1)) 

source.addTarget(filter) 
source.processImage 

output = filter.imageFromCurrentlyProcessedOutput 

Проблема заключается в том, что я не знаю, как преобразовать мой обычный кадр координаты в блок системы, что setCropRegion нужно использовать (0,0 - 1,0) координат. Я знаю, что должен быть какой-то алгоритм.

Фрейм координаты Я пытаюсь преобразовать являются:

CGRectMake(10, 10, 320, 320) 
+0

Вы проверили этот ответ? Он дал очень хорошее решение без литералов. http://stackoverflow.com/questions/16041538/normalising-cgrect-between-0-and-1 – Chris

ответ

1

Просто думать о них в процентах.

Это будет:

CGRectMake(10.0/imageWidth, 10.0/imageHeight, 320.0/imageWidth, 320.0/imageHeight); 
+0

Ах круто. Но конечный результат не квадрат и очень увеличенный. Интересно, почему? –

+0

Если я их переключу, он станет квадратом! crop_cords = CGRectMake (0.0/original.size.height, 0.0/original.size.width, 641.0/original.size.height, 641.0/original.size.width) –

Смежные вопросы