Поднимите (взорвитесь) CGImageRef, как симулятор iPhone на iPad.От 1 до 2 пикселей - PullRequest
0 голосов
/ 05 сентября 2011

Я хотел бы увеличить (взорвать) изображение путем дублирования пикселей.

1 px -> 2px

Знание того, как читать отдельные пиксели (RGBA):

CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(myImage));  
UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef); 

int length = CFDataGetLength(m_DataRef); 

for (int i=0; i<length; i+=4){

    int r = i;
    int g = i+1;
    int b = i+2;
    int a = i+3;   
}

Как мне увеличить размер изображения.Я пытался копировать пиксели линейным способом, но в итоге получилось изображение двух изображений рядом.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Я поддерживаю очень простую в использовании библиотеку для iOS под названием ANImageBitmapRep .Класс ANImageBitmapRep позволяет легко масштабировать изображения различными способами, в том числе самым простым:

UIImage * myImage = [UIImage imageNamed:@"myImage.png"];
ANImageBitmapRep * irep = [ANImageBitmapRep imageBitmapRepWithImage:myImage];
[irep setSize:BMPointMake(width, height)];
UIImage * scaled = [irep image];

Это позволит достичь того, что вы ищете, без необходимости работать с тоннами растровых контекстов.и CoreGraphics.Также отмечу, что каждый ANImageBitmapRep поддерживается CGContextRef, который можно легко получить с помощью метода context.Если вы вручную измените контекст, просто запустите [myBitmap setNeedsUpdate:YES].

. Вы также можете использовать методы setSizeFittingFrame: и setSizeFillingFrame: для масштабирования, которые никогда не приведут к искажению изображения.

0 голосов
/ 05 сентября 2011

создайте CGBitmapContext в целевом размере, затем нарисуйте на нем изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...