PNG를 더 큰 빈/코드 생성 텍스처로 복사하는 가장 좋은 방법? (Opengl ES 1.1/iPhone)

StackOverflow https://stackoverflow.com/questions/521483

  •  22-08-2019
  •  | 
  •  

문제

iPhone에서 텍스처 맵/조작을 원하는 320x480 PNG가 있지만 이러한 차원은 분명히 2의 전력이 아닙니다. 이미 320x480 이미지가 포함 된 검은 색 배경 인 512x512 PNG에서 텍스처 맵 조작 알고리즘을 이미 테스트했습니다. 320x480 영역이 iPhone 화면에서 올바르게 지향/중심/스케일링되는 원점 (왼쪽 하단 코너 (0,0))를 중심으로합니다.

내가 지금하고 싶은 것은 320x480 소스 이미지를 가져 와서 블랭크/블랙 배경에 적용하여 코드로 생성 된 텍스처에 적용하여 두 사람이 하나의 텍스처로 결합하여 정점을 적용하고 적용 할 수 있도록하는 것입니다. 512x512 테스트에서 사용한 텍스처 좌표. 이것은 결국 카메라 캡처 및 카메라 롤 공급 이미지 등에 사용됩니다.

이견있는 사람? (Gl util 툴킷 등을 사용하지 않고 Opengl ES 1.1 용이어야합니다).

고마워, 아리

도움이 되었습니까?

해결책

내가 찾은 방법 중 하나는 단순히 두 이미지를 현재 컨텍스트에 그리는 다음 결과 결합 이미지를 추출하는 것입니다. OpenGL을 향한 또 다른 방법이 더 효율적일 수 있습니까?

// CGImageRef for background image
// CGImageRef for foreground image

// CGSize for current context

// Define CGContextRef for current context

// UIGraphicsBeginImageContext using CGSize

// Get value for current context with UIGraphicsGetCurrentContext()

// Define 2 rectangles, one for the background and one for the foreground images

// CGContextDrawImage(currentContext, backgroundRect, backgroundImage);
// CGContextDrawImage(currentContext, foregroundRect, foregroundImage);

// UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();

// spriteImage = finalImage.CGImage();

// UIGraphicsEndImageContext();

이 시점에서 SpriteImage를 텍스처의 이미지 소스로 사용할 수 있으며 예를 들어 320x480 PNG와 빈 512x512 PNG의 조합이됩니다.

512x512 Blank PNG를 코드로 생성 된 이미지로 바꾸지 만 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top