У меня проблема с неправильной формой. Я много искал, но ничего не было полезно для меня. У меня есть ряд кадров неправильной формы, и каждый кадр снова делится на подзоны. Я хочу разместить изображения из библиотеки фотографий в каждой области под кадра. Но я не могу получить местоположение каждой подзоны, а так как форма также нерегулярна, и снова возникает другая проблема, чтобы соответствовать изображению в этой области. Может кто-нибудь мне помочь !! Это пример этого кадра. Как разместить изображение в кадре неправильной формы
ответ
Вы никогда не можете иметь рамки неправильной формы. Рамки всегда будут иметь прямую форму. Вы можете сделать это, обнаружив прозрачные области.
Я думаю, что не понял ваш вопрос: | Можете ли вы объяснить точный сценарий? – DivineDesert
Думайте, что есть круг, и он разделен на четыре части. Мне нужно добавить изображения в эту область. Граница круга и линии, разделяющая его на части, будет частью кадра, а вся другая часть кадра будет прозрачной, я должен соответствовать представлению изображения на этой части. –
вы хотите обрезать различные изображения по дуге окружности ли? Например, вот снимок экрана с четырьмя изображениями (просто случайные образы, которые я получил от поиска для собак на http://images.google.com):
И здесь же четыре изображения купированы по кругу (или более точно , каждый из четырех изображений, были по отдельности обрезаны по той же окружности пути):
Вот код, который делает это
- (UIImage *)cropImage:(UIImage *)image locatedAt:(CGRect)imageFrame byCircleAt:(CGPoint)center withRadius:(float)radius
{
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, imageFrame.size.width, imageFrame.size.height, 8, 4 * imageFrame.size.width, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextBeginPath(context);
CGRect ellipseFrame = CGRectMake(center.x - imageFrame.origin.x - radius, imageFrame.size.height - (center.y - imageFrame.origin.y - radius) - radius * 2.0, radius * 2.0, radius * 2.0);
CGContextAddEllipseInRect(context, ellipseFrame);
CGContextClosePath(context);
CGContextClip(context);
CGContextDrawImage(context, CGRectMake(0, 0, imageFrame.size.width, imageFrame.size.height), image.CGImage);
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
UIImage *newImage = [UIImage imageWithCGImage:imageMasked];
CGImageRelease(imageMasked);
return newImage;
}
- (void)addSingleCroppedImage:(UIImage *)image at:(CGRect)imageFrame byCircleAt:(CGPoint)center withRadius:(float)radius
{
UIImage *newImage = [self cropImage:image locatedAt:imageFrame byCircleAt:center withRadius:radius];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageFrame];
imageView.image = newImage;
[self.view addSubview:imageView];
}
- (void)addCroppedImages
{
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
CGPoint center = CGPointMake(self.view.frame.size.width/2.0, self.view.frame.size.width/2.0);
float radius = 150.0;
UIImage *dog1 = [UIImage imageWithContentsOfFile:[bundlePath stringByAppendingPathComponent:@"imgres-1.jpg"]];
UIImage *dog2 = [UIImage imageWithContentsOfFile:[bundlePath stringByAppendingPathComponent:@"imgres-2.jpg"]];
UIImage *dog3 = [UIImage imageWithContentsOfFile:[bundlePath stringByAppendingPathComponent:@"imgres-3.jpg"]];
UIImage *dog4 = [UIImage imageWithContentsOfFile:[bundlePath stringByAppendingPathComponent:@"imgres-4.jpg"]];
CGRect frame;
UIImage *currentImage;
// upper left
currentImage = dog1;
frame = CGRectMake(center.x - currentImage.size.width, center.y - currentImage.size.height, currentImage.size.width, currentImage.size.height);
[self addSingleCroppedImage:currentImage at:frame byCircleAt:center withRadius:radius];
// upper right
currentImage = dog2;
frame = CGRectMake(center.x, center.y - currentImage.size.height, currentImage.size.width, currentImage.size.height);
[self addSingleCroppedImage:currentImage at:frame byCircleAt:center withRadius:radius];
// lower left
currentImage = dog3;
frame = CGRectMake(center.x - currentImage.size.width, center.y, currentImage.size.width, currentImage.size.height);
[self addSingleCroppedImage:currentImage at:frame byCircleAt:center withRadius:radius];
// lower right
currentImage = dog4;
frame = CGRectMake(center.x, center.y, currentImage.size.width, currentImage.size.height);
[self addSingleCroppedImage:currentImage at:frame byCircleAt:center withRadius:radius];
}
Я дорогой, ты получил мою мысль. Но вы обрезаете изображение после установки изображения в четырех изображениях, но проблема в том, что у меня есть кадр, как на втором изображении, и мне нужно установить изображение в этом кадре. Означает, что мой кадр уже определен, и я должен установить изображение на ощупь в этой конкретной области. –
Итак, у вас есть просто одно изображение, которое вы хотите обрезать кружком? Или у вас есть существующий графический элемент для кругового «фрейма» (это плохое слово, потому что это означает что-то совсем другое в мире UIView!), Что вам нужно поместить ваши изображения? Не уверен, понимаю ли я, что это за «кадр», на который вы ссылаетесь. – Rob
- 1. Как обрезать изображение на основе неправильной формы?
- 2. Схема неправильной формы формы
- 3. Создание рамки неправильной формы
- 4. Как определить, что IPad пользователей краны в изображение неправильной формы?
- 5. Установка неправильной формы в круг
- 6. Смежные изображения неправильной формы
- 7. Как правильно разместить изображение?
- 8. Сравнение неправильной формы
- 9. Как правильно разместить прямоугольник в кадре?
- 10. Как определить границы неправильной формы?
- 11. Split изображение, содержащее несколько неправильной формы, изображения в Python
- 12. как сделать неправильной формы TextView
- 13. Площадь неправильной формы
- 14. неправильной формы блоб в CAFFE
- 15. Гистограмма OpenCV неправильной формы
- 16. Форма неправильной формы
- 17. Укладка кнопки неправильной формы
- 18. Окрашивание неправильной формы Opengl
- 19. неправильной формы градиен контур в Flash,
- 20. Ионный 2: аватар неправильной формы
- 21. Как правильно разместить изображение?
- 22. slidify - как разместить изображение?
- 23. Как разместить изображение в angularjs
- 24. Как разместить изображение в android
- 25. Динамически меняющееся изображение в кадре
- 26. CSS DIV контейнеры неправильной формы
- 27. Как разместить изображение справа от формы, если я использую Zend_Form?
- 28. Разместить изображение в стене
- 29. URL-адрес неправильной формы Joomla
- 30. Как сохранить png-изображение в кадре камеры?
Можете ли вы дать нам небольшую информацию о характере формы и ее генерации, о природе «подзоны» и т. Д.? – Rob
Подумайте, что есть круг, и он разделен на четыре части. Мне нужно добавить изображения в эту область. Граница круга и линии, разделяющая его на части, будет частью кадра, а вся другая часть кадра будет прозрачной, я должен соответствовать представлению изображения на этой части. –