Note that there are some explanatory texts on larger screens.

plurals
  1. POBad Huffman code?
    primarykey
    data
    text
    <p>I am doing some testing in my iPhone app and I get this error:</p> <pre><code>&lt;Error&gt;: Corrupt JPEG data: bad Huffman code </code></pre> <p>I have seen some weird errors, but this one is really weird. I am also getting some other corrupt errors from it to that I can't remember. Let me post my code to write these files in order.</p> <p><strong>Step 1:</strong> Take a picture then save it</p> <pre><code>- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { [picker.parentViewController dismissModalViewControllerAnimated:NO]; uploadImage = image; int orient = uploadImage.imageOrientation; NSString *theOrientation = [NSString stringWithFormat: @"%d", orient]; NSLog(@"Check it: 1"); NSString *latestIDQuery = @""; NSArray *results = [database executeQuery:@"SELECT * FROM processes ORDER BY id DESC LIMIT 0,1"]; for (NSDictionary *row in results) { latestIDQuery = [row valueForKey:@"id"]; } int latestID = [latestIDQuery intValue]; int newID = latestID + 1; NSString *newIDString = [[NSString alloc] initWithFormat:@"%d", newID]; NSString *imageURL = [NSString stringWithFormat:@"Documents/%@_process.jpg",newIDString]; NSLog(@"Saving here... %@", imageURL); NSString *uploadImagePath = [NSString stringWithFormat:@"%@_process.jpg",newIDString]; NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:imageURL]; NSLog(@"Needs to write something like this: %@", jpgPath); [UIImageJPEGRepresentation(uploadImage, 1.0) writeToFile:jpgPath atomically:YES]; [database executeNonQuery:@"INSERT INTO processes (image, album, status, orient, ready) VALUES (?, ?, ' In Queue', ?, 'no');", uploadImagePath, selectedID, theOrientation]; TableViewAppDelegate *dataCeter = (TableViewAppDelegate *)[[UIApplication sharedApplication] delegate]; dataCeter.dataSix = nil; NSString *databaseURL = [NSString stringWithFormat:@"%@_process.jpg",newIDString]; dataCeter.dataSix = databaseURL; [self showCaption]; } </code></pre> <p><strong>Step 2:</strong> Start the uploads and possibly resize it:</p> <pre><code> NSString *sqlImageUploadPathOne = @"./../Documents/"; NSString *sqlImageUploadPathTwo = [rowtwo valueForKey:@"image"]; NSString *getCaption = [rowtwo valueForKey:@"caption"]; NSString *getTheID = [rowtwo valueForKey:@"id"]; NSString *getOrientation = [rowtwo valueForKey:@"orient"]; NSString *jpgPath = [NSString stringWithFormat:@"Documents/%@",sqlImageUploadPathTwo]; NSString *jpgPathTwo = [NSString stringWithFormat:@"./../Documents/%@",sqlImageUploadPathTwo]; NSString *yourPath = [NSHomeDirectory() stringByAppendingPathComponent:jpgPath]; // Resize and Save UIImage *tempImageTwo = [UIImage imageNamed:jpgPathTwo]; float tooBig = 800.0; UIImage *tempImage = [self scaleImage:tempImageTwo:tooBig:tooBig]; NSData *imageDataTwo = [NSData dataWithData:UIImageJPEGRepresentation(tempImage, 0.1)]; [imageDataTwo writeToFile:jpgPathTwo atomically:YES]; </code></pre> <p>And here's the function used to scale the image:</p> <pre><code>- (UIImage *)scaleImage:(UIImage *) image: (float)maxWidth:(float) maxHeight </code></pre> <p>{</p> <pre><code>CGImageRef imgRef = image.CGImage; CGFloat width = CGImageGetWidth(imgRef); CGFloat height = CGImageGetHeight(imgRef); if (width &lt;= maxWidth &amp;&amp; height &lt;= maxHeight) { return image; } CGAffineTransform transform = CGAffineTransformIdentity; CGRect bounds = CGRectMake(0, 0, width, height); if (width &gt; maxWidth || height &gt; maxHeight) { CGFloat ratio = width/height; if (ratio &gt; 1) { bounds.size.width = maxWidth; bounds.size.height = bounds.size.width / ratio; } else { bounds.size.height = maxHeight; bounds.size.width = bounds.size.height * ratio; } } CGFloat scaleRatio = bounds.size.width / width; UIGraphicsBeginImageContext(bounds.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextScaleCTM(context, scaleRatio, -scaleRatio); CGContextTranslateCTM(context, 0, -height); CGContextConcatCTM(context, transform); CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), imgRef); UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return imageCopy; } </code></pre> <p>Why are ONLY some of my images getting corrupt? Would I need to take a new path and do it a different way? </p> <p>Thanks,<br>Coulton</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload