내가 뭘 하려는지 아이폰 카메라를 사용하여 사진을 찍은 다음 다른 사진과 그림의 일부를 교체하는 것입니다 ... 나는 사진을 찍은 다음 UIView로 오버레이 생각 낮은 알파를 사용하지만 그림의 특정 부분 만 바꿀 수는 없습니다. 당신이 나에게 몇 가지 아이디어를 줄 수 있다면 나는 정말로 성적이 될 것이다.변경 배경 이미지
답변
iOS의 경우 이미지 용 API가 여러 개 있습니다. 혼란 스럽습니다. 먼저 이미지의 CocoaTouch 추상화 인 UIImage
이 있습니다. 그런 다음 이미지의 CoreGraphics 추상화 인 CGImage
이 있습니다. 그리고 이미지의 CoreImage 추상화 인 CIImage
이 있습니다.
이들은 모두 다리가없는 멋진 방식으로 함께 사용할 수없는 모든 엔티티입니다. 대신, 당신은 다른 형식으로 변환해야합니다.
일반적으로 원하는 것은 위젯에 표시 할 수있는 UIImage입니다. CGImage
또는 CIImage
에서이 이미지를 만들 수 있습니다. CIImage
에는 고급 필터 기능이 포함되어 있습니다. 예를 들어 적절한 컴포지션 필터를 사용하여 설명 할 때 다른 이미지를 맨 위에 올릴 수 있습니다.
CIImage
은 더 빠르고 더 좋아 보이지만, iOS에서는 아직 완전히 지원되지 않습니다. iOS 용 맞춤 필터를 아직 만들지는 못하고 일부 필터 만 아직 지원되지 않을 수 있습니다.
따라서이 목적으로 CGImage
을 사용하는 것이 좋습니다. 새로운 렌더 컨텍스트로 렌더링 한 다음 해당 렌더 컨텍스트에서 UIImage를 만들어야합니다.
UIImage *originalImage = ...;
UIImage *frontImage = ...;
CGSize destinationSize = originalImage.frame.size;
UIGraphicsBeginImageContext(destinationSize);
[originalImage drawInRect:CGRectMake(0,0,destinationSize.width,destinationSize.height)];
[originalImage drawInRect:CGRectMake(10,10,destinationSize.width - 20,destinationSize.height - 20)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
포인트 모두 이미지 2. 변환이 ciimage 1. 사용 quartzcore 라이브러리에서 당신을 설명하고있다 :
이
트릭을 할해야합니다. 변환 코드는 다음과 같습니다 이제CIImage *paper1 =[CIImage imageWithData:UIImageJPEGRepresentation([UIImage imageNamed:@"heart123.png"], 1)];
(많은 중 하나를 부지 선정하고, 많은이 있습니다), 필터를 사용하여 당신의 필요 .. "CISourceAtopCompositing"또는 "CISourceOverCompositing"필터 당신이 얻을 같은 에 따라 여기
CIContext *context = [CIContext contextWithOptions:nil];
CIFilter filter= [CIFilter filterWithName:@"CISourceAtopCompositing"]; //for CISourceAtopCompositing method
[filter setDefaults];
[filter setValue:sourceImage forKey:@"inputImage"];
[filter setValue:backgroundImage forKey:@"inputBackgroundImage"];
모두 backgroundImage의, 그리고 sourceImage는 CIImage가있는 UIImage
로 변환됩니다 : 당신이 그들을 사용하는코드를 원하는 것은
이제 편집 사용 후이 코드를있는 UIImage를 얻을 수
CIImage *outputImage = [filter valueForKey:@"outputImage"];
CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *outputUIImage = [UIImage imageWithCGImage:cgImage];
- 1. Mainview의 배경 이미지 변경
- 2. 변경 배경 이미지
- 3. 스크롤로 배경 이미지 변경
- 4. JavaScript로 배경 이미지 변경
- 5. 변경 이미지 배경 이제
- 6. 배경 이미지 변경 url
- 7. MFMailComposeViewController의 배경 이미지 변경
- 8. 단추의 배경 이미지 변경
- 9. Sencha Touch의 배경 이미지 변경
- 10. 변경 배경 이미지 - jQuery를 UI
- 11. 앱 회전시 배경 이미지 변경
- 12. jQuery 단추로 배경 이미지 변경
- 13. 라디오 버튼으로 배경 이미지 변경
- 14. Html OnClick 배경 이미지 변경
- 15. JavaScript로 배경 반복 이미지 변경
- 16. Jquery 버튼에서 배경 이미지 변경
- 17. 변경 배경 이미지 : 나는 메뉴가
- 18. 애니메이션 레이아웃 배경 이미지 변경
- 19. 오리엔테이션 변경시보기 배경 이미지 변경
- 20. 모든 이미지 갤러리 링크로 배경 이미지 변경
- 21. ListActivity를 확장 한 활동의 배경 이미지 변경
- 22. Blackberry API로 홈 화면 배경 이미지 변경
- 23. 동적으로 UINavigationBar의 배경 이미지 변경 (Pre-iOS5)
- 24. 도청되었을 때 배경 이미지 변경 - Android
- 25. 배경 이미지 색상 변경 firefox/chrome
- 26. SCSS/SASS 배경 이미지 URL 변경
- 27. a : 링크 배경 이미지 변경 : 호버
- 28. jquery 또는 javascript div 배경 이미지 변경
- 29. 특정 시간 사이에 배경 이미지 변경
- 30. jQuery - 옮겨 놓은 경우 배경 이미지 변경