コード例 #1
0
ファイル: cmd_dec.c プロジェクト: TangCheng/hisi351x_uboot
int do_jpgd(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
    int ret;
#if 0
    if (argc < 4)
    {
        printf("Insufficient parameter!\n");
        printf ("Usage:\n%s\n", cmdtp->usage);
        return -1;
    }
#else
#ifdef	CONFIG_SYS_LONGHELP
    printf ("you should first set:\n%s\n", cmdtp->help);
#endif
#endif

    ret = load_jpeg();
    if (0 != ret)
    {
        printf("load jpeg err. \n");
        //todo return 0 or ret?
        return 0;
    }
    jpeg_decode();

    printf("decode jpeg!\n");

    return 0;
}
コード例 #2
0
ファイル: pikl_io.c プロジェクト: t08039/PhotoLibrary
//=================================================================================
// pkl_fdopen
//=================================================================================
PKLExport PKLImage pkl_fdopen(FILE *in)
{
	PKLImage pkl;
	int result;
	
	pkl = malloc( sizeof(struct _PKLImage) );
	if(!pkl) return(NULL);
	memset(pkl, 0, sizeof(struct _PKLImage));
	
	pkl->compress = -1;
	
	format_type(pkl, in);

	switch(pkl->format){
		case PKL_FORMAT_JPEG:
			result = load_jpeg(pkl, in);
			break;
		case PKL_FORMAT_PNG:
			result = load_png(pkl, in);
			break;
		case PKL_FORMAT_BITMAP:
			result = load_bitmap(pkl, in);
			break;
		default:
			result = 1;
	}
	
	if(result){
		free(pkl);
		pkl=NULL;
	}
	return(pkl);
}
コード例 #3
0
/**
 * Load texture from file.
 * @param vfs - virtual filesystem where we can load files from
 * @param name - name of the file to be loaded
 * @param width - return width of the file
 * @param height - return height of the file
 * @return smart array containing data of the file
 */
shared_array<byte> nrCTextureLoader::load(nrCFileSystem* vfs, const string& name,int &width,int &height) {
  	
	if(strstr(name.c_str(),".tga") || strstr(name.c_str(),".TGA")) return load_tga(vfs,name,width,height);
	if(strstr(name.c_str(),".png") || strstr(name.c_str(),".PNG")) return load_png(vfs,name,width,height);
	if(strstr(name.c_str(),".jpg") || strstr(name.c_str(),".JPG")) return load_jpeg(vfs,name,width,height);
	if(strstr(name.c_str(),".dds") || strstr(name.c_str(),".DDS")) return load_dds(vfs,name,width,height);
	
	nrLog.Log(NR_LOG_ENGINE, "nrCTextureLoader::load():unknown format of '%s' file",name.c_str());
	return shared_array<byte>(NULL);
}
コード例 #4
0
ファイル: test_jpeg.c プロジェクト: TitanNeu/image
int main(int argc, char *argv[])
{
    image_t *img;

    img = load_jpeg(argv[1]);
    save_as_bmp(img, argv[2]);
    img_destroy(img);

    return 0;
}
コード例 #5
0
ファイル: image.cpp プロジェクト: dvhart/libstk
 image::image(stk::surface::ptr onscreen_surface,const std::string& filename) : onscreen_surface(onscreen_surface)
 {
     INFO("image::image(" << filename << ")");
     // switch on extension until we remove ppm support
     if (filename.find(".ppm") != std::string::npos)
         load_ppmx(filename);
     else if (filename.find(".jpg") != std::string::npos || filename.find(".jpeg") != std::string::npos)
         load_jpeg(filename);
     else
         load_png(filename);
 }
コード例 #6
0
ファイル: load_image.c プロジェクト: dwdcth/LCUI
static int detect_image(const char *filepath, LCUI_Graph *out)
/* 功能:检测图片格式,并解码图片 */
{
	int result = 1;
	if (result == 1) {
		result = load_png(filepath, out);  
	}
	if (result == 1) {
		result = load_jpeg(filepath, out);  
	}
	if (result == 1) {
		result = load_bmp(filepath, out); 
	}
	return result;
}
コード例 #7
0
ファイル: main.cpp プロジェクト: Ithamar/cosmoe
int main( int argc, char** argv )
{
	BApplication* pcApp = new BApplication( "application/x-vnd.KHS-desktop_manager" );

	#if 0
	if( getuid() == 0 )
	{
		const char* pzLoginName = NULL;

		if ( argc == 2 )
		{
			pzLoginName = argv[1];
		}
		authorize( pzLoginName );
	}
	#endif
	const char* pzBaseDir = getenv( "COSMOE_SYS" );
	if( pzBaseDir == NULL )
	{
		pzBaseDir = "/cosmoe";
	}
	char* pzPath = new char[ strlen(pzBaseDir) + 80 ];
	strcpy( pzPath, pzBaseDir );
	strcat( pzPath, "/backdrop.jpg" );
	g_pcBackDrop = load_jpeg( pzPath );
	delete[] pzPath;

	BWindow* pcBitmapWindow = new BWindow(  BRect( 0, 0, 1599, 1199 ), "",
											B_NO_BORDER_WINDOW_LOOK,
											B_NORMAL_WINDOW_FEEL,
											WND_BACKMOST,
											B_ALL_WORKSPACES );
	pcBitmapWindow->AddChild( new BitmapView( BRect( 0, 0, 1599, 1199 ), g_pcBackDrop ) );
	pcBitmapWindow->Show();

	pcApp->Run();

	return( 0 );
}
コード例 #8
0
static FtkBitmap* ftk_image_jpeg_decoder_decode(FtkImageDecoder* thiz, const char* filename)
{
	return_val_if_fail(ftk_image_jpeg_decoder_match(thiz, filename) == RET_OK, NULL);

	return load_jpeg(filename);
}
コード例 #9
0
ファイル: main.c プロジェクト: kasicass/frustum
/* init
 */
int init(void) {
	int i,num_vertex,width,height;
	float *vertex;
	unsigned char *data;
	float rmax;
	vec3 min,max;
    vec4 plane_s = { 1.0, 0.0, 0.0, 0.0 };
    vec4 plane_t = { 0.0, 1.0, 0.0, 0.0 };
    vec4 plane_r = { 0.0, 0.0, 1.0, 0.0 };
    vec4 plane_q = { 0.0, 0.0, 0.0, 1.0 };
	GLenum err;

	err = glewInit();
	if (GLEW_OK != err)
	{
		fprintf(stderr, "glewInit() error: %s\n", glewGetErrorString(err));
	}

	glClearDepth(1);
    glEnable(GL_DEPTH_TEST);
	glDepthFunc(GL_LEQUAL);
    glEnable(GL_LIGHT0);
	glPointSize(4);
	glTexGenfv(GL_S,GL_EYE_PLANE,plane_s);
	glTexGenfv(GL_T,GL_EYE_PLANE,plane_t);
	glTexGenfv(GL_R,GL_EYE_PLANE,plane_r);
	glTexGenfv(GL_Q,GL_EYE_PLANE,plane_q);
	glTexGeni(GL_S,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);
	glTexGeni(GL_T,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);
	glTexGeni(GL_R,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);
	glTexGeni(GL_Q,GL_TEXTURE_GEN_MODE,GL_EYE_LINEAR);

	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
	glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
	glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,SIZE,SIZE,0,GL_RGB,
		GL_UNSIGNED_BYTE,NULL);
	
	glGenTextures(1,&texture_id);
	glBindTexture(GL_TEXTURE_2D,texture_id);
	if((data = load_jpeg("data/ground.jpg",&width,&height))) {
		glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,
			GL_LINEAR_MIPMAP_LINEAR);
		glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,
			GL_LINEAR_MIPMAP_LINEAR);
		gluBuild2DMipmaps(GL_TEXTURE_2D,4,width,height,GL_RGBA,
			GL_UNSIGNED_BYTE,data);
		free(data);
	}
	
	vertex = load_3ds("data/mesh.3ds",&num_vertex);
	if(!vertex) return -1;
	
	v_set(999999,999999,999999,min);
	v_set(-999999,-999999,-999999,max);
    for(i = 0; i < num_vertex; i++) {
		int j;
		float *v = &vertex[i << 3];
		for(j = 0; j < 3; j++) {
			if(min[j] > v[j]) min[j] = v[j];
			if(max[j] < v[j]) max[j] = v[j];
		}
    }
	v_add(min,max,min);
	v_scale(min,0.5,min);
    for(i = 0; i < num_vertex; i++) {
        v_sub(&vertex[i << 3],min,&vertex[i << 3]);
    }
    for(i = 0, rmax = 0; i < num_vertex; i++) {
        float r = sqrt(v_dot(&vertex[i << 3],&vertex[i << 3]));
		if(r > rmax) rmax = r;
    }
	rmax = 0.8 / rmax;
    for(i = 0; i < num_vertex; i++) {
        v_scale(&vertex[i << 3],rmax,&vertex[i << 3]);
    }
	
    mesh_id = glGenLists(1);
	glNewList(mesh_id,GL_COMPILE);
    glBegin(GL_TRIANGLES);
    for(i = 0; i < num_vertex; i++) {
        glNormal3fv((float*)&vertex[i << 3] + 3);
        glVertex3fv((float*)&vertex[i << 3]);
    }
    glEnd();
    glEndList();
	
	vertex = load_3ds("data/ground.3ds",&num_vertex);
	if(!vertex) return -1;
	
    ground_id = glGenLists(1);
	glNewList(ground_id,GL_COMPILE);
    glBegin(GL_TRIANGLES);
    for(i = 0; i < num_vertex; i++) {
		glTexCoord2fv((float*)&vertex[i << 3] + 6);
		glNormal3fv((float*)&vertex[i << 3] + 3);
        glVertex3fv((float*)&vertex[i << 3]);
    }
    glEnd();
    glEndList();
	
	image = malloc(SIZE * SIZE * 4);
	
	return 0;
}
コード例 #10
0
ファイル: qrtest.c プロジェクト: culina/quirc
static int scan_file(const char *path, const char *filename,
		     struct result_info *info)
{
	int len = strlen(filename);
	const char *ext;
	clock_t start;
	clock_t total_start;
	int ret;
	int i;

	while (len >= 0 && filename[len] != '.')
		len--;
	ext = filename + len + 1;
	if (!(toupper(ext[0] == 'j') && toupper(ext[1] == 'p') &&
	      (toupper(ext[2] == 'e') || toupper(ext[2] == 'g'))))
		return 0;

	total_start = start = clock();
	ret = load_jpeg(decoder, path);
	info->load_time = clock() - start;

	if (ret < 0) {
		fprintf(stderr, "%s: load_jpeg failed\n", filename);
		return -1;
	}

	start = clock();
	quirc_end(decoder);
	info->identify_time = clock() - start;

	info->id_count = quirc_count(decoder);
	for (i = 0; i < info->id_count; i++) {
		struct quirc_code code;
		struct quirc_data data;

		quirc_extract(decoder, i, &code);

		if (!quirc_decode(&code, &data))
			info->decode_count++;
	}

	info->total_time += clock() - total_start;

	printf("  %-30s: %5ld %5ld %5ld %5d %5d\n", filename,
	       CLOCK_TO_MS(info->load_time),
	       CLOCK_TO_MS(info->identify_time),
	       CLOCK_TO_MS(info->total_time),
	       info->id_count, info->decode_count);

	if (want_cell_dump || want_verbose) {
		for (i = 0; i < info->id_count; i++) {
			struct quirc_code code;

			quirc_extract(decoder, i, &code);
			if (want_cell_dump) {
				dump_cells(&code);
				printf("\n");
			}

			if (want_verbose) {
				struct quirc_data data;
				quirc_decode_error_t err =
					quirc_decode(&code, &data);

				if (err) {
					printf("  ERROR: %s\n\n",
					       quirc_strerror(err));
				} else {
					printf("  Decode successful:\n");
					dump_data(&data);
					printf("\n");
				}
			}
		}
	}

	info->file_count = 1;
	return 1;
}
コード例 #11
0
ファイル: Texture.cpp プロジェクト: Bilalh/SolarSystem
void Texture::create_texture()
{
	unsigned char* data = load_jpeg(filename);
	texture_id =load_texture(data, width, height, wrap);
	free(data);
}
コード例 #12
0
void BMMap::make_map( int num_loc, float spacing )
{
	int i,j;

	// init bitmaps	
	if (bmpMap) destroy_bitmap( bmpMap );


	bmpMap = load_jpeg( "gamedata/map.jpg" );
	
	BITMAP *blankMap = create_bitmap( 800, 600 );
	blit( bmpMap, blankMap, 0,0, 0,0, 800, 600 );

	nloc = num_loc;

	if (allLocs.size()==0) {
		init_map_locs( "gamedata/maplocs.xml" );
	}

	printf("allLocs size %d\n", allLocs.size() );

	// fill in the map locs
	int reject , count, ndx;
	for (i=0; i < nloc; i++) {

		reject = 1; count = 100;
		while ((reject) && (count)) {
			ndx = random( allLocs.size() );
			count--;

			reject = 0; 
			for (j=0; j < i; j++) {
				if (allLocs[ndx].name==loc[j].name) {
					reject = 1;
					break;
				}
			}

		}

		loc[i] = allLocs[ndx];
		loc[i].index = i;
		loc[i].heroVisited = 0;
	}

	// locate the locs
	for ( i=0; i < nloc; i++) {
		

		int good = 0;
		int x, y;
		float d;
		
				
		good = 0;
		while (!good) {
			x = random( 170, 678 );
			y = random( 75, 450 );			

			good = 1;
			for  ( j=0; j < i; j++) {
			
				float xx, yy;
				xx = (float)(loc[j].xpos - x);
				yy = (float)(loc[j].ypos - y);
				
				d = sqrt( xx*xx + yy*yy ) ;				
				if (d < spacing ) {
					good = 0;					
					break;
				}
			}
		}
				
		loc[i].xpos = x;
		loc[i].ypos = y;
	}


	// make the edges
	make_edges_delauney();


	// remove some edges 
	std::vector<CanRemoveEdge> cre;
	while (1) {
		cre.erase( cre.begin(), cre.end() );

		// which edges can we remove??
		for (i=0; i < nloc; i++) {
			for (j=0; j < i; j++) {

				if (adj[i][j].pass) {
					
					// can we remove i->j?
					adj[i][j].pass = 0;
					adj[j][i].pass = 0;

					if (is_connected()) {
						CanRemoveEdge foo;
						foo.a = i; foo.b = j;
						cre.push_back( foo );
					}


					// put the edge back (for now )
					adj[i][j].pass = 1;
					adj[j][i].pass = 1;

				}

			}
		}

		// no more edges to remove? (TODO: leave SOME loops)

		//printf("Cre size %d\n", cre.size() );
		if (cre.size() == 0 ) {
			break; 
		}

		// do remove the edge
		int ndx = random( cre.size() );
		i = cre[ndx].a;
		j = cre[ndx].b;

		adj[i][j].pass = 0;
		adj[j][i].pass = 0;

		// draw in the blockage
		if (adj[i][j].de) {
			DualEdge *de = adj[i][j].de;

			draw_blockers( bmpMap, bmpMtns, de->x1, de->y1, de->x2, de->y2 );

			//line( bmpMap, de->x1, de->y1, de->x2, de->y2, makecol( 255,0,0) );
		}
	}


	

	// draw the edges
	for ( i=0; i < nloc; i++) {
		for ( j=0; j < i; j++) {

			if (adj[i][j].pass) {


				draw_road( bmpMap, blankMap,
					loc[i].xpos, loc[i].ypos,
					loc[j].xpos, loc[j].ypos );

				//line( bmpMap, 
				//	loc[i].xpos, loc[i].ypos,
				//	loc[j].xpos, loc[j].ypos,
				//	makecol( 0,255,0 ) );

			}

		} 
	}


	// draw the icons on the map
	for ( i=0; i < nloc; i++) {

		BITMAP *ico = mapIcons[loc[i].bgType];

		int f=0;
		if (ico->w > 64) {
			f = random( ico->w / 64 );
		}
		masked_blit( ico, bmpMap, f*64,0, 
			  loc[i].xpos - 32, loc[i].ypos - 32,
			  64, 64 );
	}
	

	destroy_bitmap( blankMap );
}