# Converting to JPEG

**URL:** https://forum.kirupa.com/t/converting-to-jpeg/210598
**Category:** programming
**Created:** [December 20, 2006, 9:30am UTC](https://forum.kirupa.com/t/converting-to-jpeg/210598 "2006-12-20T09:30:41Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Dog\_E](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/dog_e/32/360_2.png) [@Dog\_E](https://forum.kirupa.com/u/Dog_E)
#### Post date: [December 20, 2006, 9:30am UTC](https://forum.kirupa.com/t/converting-to-jpeg/210598/1 "2006-12-20T09:30:41Z")

</div>

Hello everyone,

I was working with the script from:

[http://www.flash-db.com/Tutorials/snapshot/](http://www.flash-db.com/Tutorials/snapshot/)

and almost got everything perfectly however; I wanted to implement a drawing board for this where user could draw something, Flash sends the information to PHP file and PHP converts it which ended up having a weird problem. It is all fine except the final image is very low-detail.

Here is the PHP code:

```php
<?php
	//If GD library is not installed, say sorry
	if(!function_exists("imagecreate")) die("Sorry, you need GD library to run this example");
	//Capture Post data
	$data = explode(",", $_POST['img']);
	$width = $_POST['width'];
	$height = $_POST['height'];
	//Allocate image
	$image=(function_exists("imagecreatetruecolor"))?imagecreatetruecolor( $width ,$height ):imagecreate( $width ,$height );
	imagefill($image, 0, 0, 0xFFFFFF);
	//Copy pixels
	$i = 0;
	for($x=0; $x<=$width; $x++){
		for($y=0; $y<=$height; $y++){
			while(strlen($data[$i]) < 6) $data[$i] = "0" . $data[$i];
			$r = 255-hexdec("0X".substr( $data[$i] , 0 , 2 )); 
			$g = 255-hexdec("0x".substr( $data[$i] , 2 , 2 )); 
			$b = 255-hexdec("0x".substr( $data[$i++] , 4 , 2 ));
			$color = ($r << 16) | ($g << 8) | $b; 
			$color = imagecolorallocate($image, $r, $g, $b);
			imagesetpixel ( $image , $x , $y , $color );
		}
	}
	//Output image and clean
	header( "Content-type: image/jpeg" );
	ImageJPEG( $image );
	imagedestroy( $image );	
?>

```

I believe there is something I can increase here or maybe there is sth that skips couple pixels but couldn’t figure it out.

And here is the AS function that gathers the pixel information:

function output(who){  
//preloader visible  
preloader.\_visible = true  
//Here we will copy pixels data  
var pixels:Array = new Array()  
//Create a new BitmapData  
var snap = new BitmapData(who.width, who.height);   
myMatrix = new Matrix();  
//Copy image  
snap.draw(who, myMatrix);  
//Uncoment this line if you want to apply filters instead of just capturing source  
// results should be adjusted based on your library version, not recomended  
[//snap.applyFilter](https://snap.applyFilter)(snap, snap.rectangle, snap.rectangle.topLeft, myFilters[nr])  
var w:Number = snap.width, tmp  
var h:Number = snap.height  
//Build pixels array using an onEnterframe to avoid timeouts, capture a row per iteration, show a progressbar  
var a:Number = 0  
this.onEnterFrame = function(){  
for(var b=0; b\<=h; b++){  
tmp = snap.getPixel32(a, b).toString(32)  
pixels.push(tmp.substr(1))  
}  
perc = int((a\*100)/w)  
preloader.perc.text = perc+" %"  
preloader.barra.\_xscale = perc   
a++  
if(a\>w){ //Finish capturing  
preloader.\_visible = false  
sendData(pixels, h, w)  
//free memory  
snap.dispose()  
delete this.onEnterFrame  
}  
}  
}

[http://www.ozelegemezun.com/snapshot/snapshot.html](http://www.ozelegemezun.com/snapshot/snapshot.html)

Try it!

I’d be glad if you can help

Thanks :nerd:
