намалете снимка, без да използвате pinch/UIScrollView

Правя процес върху определена част от изображение, използвам следния код, но изображението, извлечено в imageToDoProce, винаги е увеличено. Приложението ми ще бъде завършено, ако мога да намаля тази снимка. Тази снимка не се вижда от потребителя, следователно не искам да използвам Pinch/UIScrollView. Просто имам нужда от метод за намаляване на мащаба на снимката или някой да ме насочи към грешката в моя код, която позволи на снимката да се увеличи. Благодаря

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
    [connection setVideoOrientation:AVCaptureVideoOrientationPortrait];
    CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); 
    CVPixelBufferLockBaseAddress(imageBuffer,0); 
    uint8_t *baseAddress = (uint8_t *)CVPixelBufferGetBaseAddress(imageBuffer); 
    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer); 
    size_t width= CVPixelBufferGetWidth(imageBuffer);
    size_t height=CVPixelBufferGetHeight(imageBuffer);



    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef context = CGBitmapContextCreate(baseAddress, 640, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst);

    CGRect rect = CGRectMake(0,200,320,48);

    CGImageRef newImage = CGBitmapContextCreateImage(context);
    UIImage *imageRef= [UIImage imageWithCGImage:CGImageCreateWithImageInRect(newImage, rect) scale:1 orientation:UIImageOrientationUp];

    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);

    CVPixelBufferUnlockBaseAddress(imageBuffer,0);



    UIImage *imageToDoProce = imageRef;

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 200, 320, 48)]; // frame is a CGRect.
    imageView.image = imageToDoProce;




   // UIImage* croppedImage = [CameraImageHelper croppedImageWithImage:imageView.image zoom:2];


   NSString*ret= [self DoProcess:imageView.image];
    //NSLog(@"obj=%@",[CameraImageHelper getSendResult]);
    NSLog(@"rec=%@",ret);

    dispatch_async(dispatch_get_main_queue(), ^{
        [[CameraImageHelper getSendResult].res1 setText:ret];
        [[CameraImageHelper getSendResult].image123 setImage:imageToDoProce] ;
    });    
}

person Kareem Waheed    schedule 05.05.2013    source източник
comment
Здравейте, разработих няколко приложения за камера и те са в магазина за приложения. Мога да ти помогна с това. Но искам да знам какъв е размерът на необходимото изображение.   -  person Thilina Hewagama    schedule 05.05.2013
comment
Благодаря за публикуването, Ето размера, който поискахте (0,200,320,48)   -  person Kareem Waheed    schedule 05.05.2013
comment
едно нещо, съотношението на изображението, върнато при този метод, е 3:4. Следователно, ако мащабираме изображението, трябва да запазим съотношението такова, каквото е. Само си помислете, че имате изображение с размер (320 430). Тогава кой е правоъгълникът, който искате да изрежете? каква област искаш?   -  person Thilina Hewagama    schedule 05.05.2013


Отговори (1)


Задайте режим на съдържание на image123 във вашия клас "CameraImageHelper".

[image123 setContentMode:UIViewContentModeScaleAspectFit];

Надявам се това да ви помогне :)

person Augustine P A    schedule 05.05.2013
comment
@ Augustine P A Благодаря за публикацията, но за съжаление тази публикация не реши проблема ми - person Kareem Waheed; 05.05.2013
comment
С правенето на някои модификации върху моето изображение и използването на вашия код, това беше решено. Толкова много благодаря. - person Kareem Waheed; 05.05.2013