Несложно жить в 21 веке. Еще проще получить видео-картинку с любой из камер iPhone внутри своего приложения.
Как это сделать и как это сделал я, было рассказано в статье про фруктожорку.
Воображение не остановилось на достигнутом.
Полученные фотографии можно использовать и в трехмерном мире.
Пример трехмерного объекта с плоской картинкой на боку Вы видите слева от текста.
Если не видите логотипа на изображении вазы, включите режим просмотр картинок в Вашем браузере.
Ниже я приведу пример превращения плоской картинки в GL текстуру и расскажу, как я тайком подглядывал за iOS Review Team.
Напоминаю, что iOS Review Team — это люди, которые проверяют наши приложения для одобрения в appStore.
Немножко кода
Для перевода битмап-картинки в GL текстуру достаточно одной функции.
Функция
- (GLuint) uploadTexture:(UIImage*) image
{
GLuint width = 256;
GLuint height = 256;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
void *imageData = malloc( height * width * 4 );
CGContextRef ctx = CGBitmapContextCreate( imageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big );
CGColorSpaceRelease( colorSpace );
CGContextClearRect( ctx, CGRectMake( 0, 0, width, height ) );
CGContextTranslateCTM( ctx, 0, height - height );
CGContextDrawImage( ctx, CGRectMake( 0, 0, width, height ), image.CGImage );
GLuint texName;
glGenTextures(1, &texName);
glBindTexture(GL_TEXTURE_2D, texName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);
CGContextRelease(ctx);
free(imageData);
///////////////////////////////////////////////////////////////
// а вот теперь наша текстура в нашем же openGL мире
glBindTexture(GL_TEXTURE_2D, texName);
///////////////////////////////////////////////////////////////
return texName;
}
Внимательный читатель заметит, что я переворачиваю картинку вверх ногами, что конечно, делать необязательно.
Ориентацией изображения можно заняться и на уровне OpenGL-ных функций, что даже проще.
Гончарный Круг
Полученный код я немедленно использовал в своем древнем приложении Гончарный Круг. Почему в нем?
Приложение приносило мне 5 баксов в день в течении 2-ух лет, когда вдруг (примерно месяц назад) поток денег прекратился.
Приложение было примитивное — крутишь гончарный круг. Он крутится, крутится.
А ты пальцем возишь по экрану и деформируешь цилиндр в вазу, стакан или амфору в соответствии со своим художественным талантом.
На вазу можно натянуть картинку и даже раскрасить.
Чтобы понять, что за беда случилась с программой, мне пришлось заглянуть на страницу приложения, и ох! я ужаснулся.
Рейтинг нулевой! И висит единственный отзыв: -НЕ ПОКУПАЙТЕ ЭТО ПРИЛОЖЕНИЕ! Оно не гончарный круг нифига! Зря потратите деньги!
Ну думаю, конкуренты, евреи или мафия. Марио кьюда ля финестра!
И ведь ответить нельзя. То ли дело в Google Play — лайся с пользователями хоть до полуночи.
Вот поэтому я не захожу на страницы своих приложений в appStore и не читаю отзывы — нервы ни к черту, а здоровье дороже.
Единственный способ убрать отрицательный отзыв — выпустить новую версию.
Если это не так — поправьте меня.
Новая версия с видеозахватом
Сделано-сказано, выпустил обновление, прикрутив вышеописанную функцию, то есть стал дергать фото пользователя на лету, лепить на вазу он-лайн и заодно прятать у себя на сервере.
Выложил приложение на проверку. И 20 долгих ночей следил за директорией, где должны были появиться фотографии проверяльщиков. Наглецы! Как чувствовали подвох, три недели ни слуху, ни духу.
И вот вчера, хлопс! Готово, попался мужик, довольно симпатичный, молодой, лет 30, пялится в мое приложение и свой айфон.
А сегодня, хлопс-2, приложение одобрено в аппстор!
По этическим соображениям, фото мужика (и бразильянок из Una Frutta из предыдущей статьи) никому не покажу.
Шутки шутками, а никто на мешает Вам проделать такой же трюк в своих программах.
Полученные фото можно использовать в залах славы, таблицах рейтингов и списках победителяй ежедневных чемпионатов.
Я лично подумываю это сделать в Чапае. Аудитория игры за полгода устаканилась, играют одни и те же 100-200 человек и всем (то есть мне) крайне любопытно, как же выглядят постоянные профи-чемпионы Славян74 или ДимонСергеич или ФабиоХаддад из Бразилии… Возможно, среди них есть читатели.
Конечно, не забудьте предупреждать игроков об этой функции приложения.
И анализируйте картинки. Игроки ведь туда не только лица суют.
Автор: PapaBubaDiop