请问怎么把一张1600*1200JPEG图片转换成800*600的保存。

那朵花 发布于 2013/01/25 15:22
阅读 1K+
收藏 1

好吧这张图片是由海康摄像机返回的 关于它我有的只是BYTE *buffer 和DWORD dwPicLen两个数据

还知道如果把它保存的话是一张1600*1200的图片格式为JPEG 目前我能把它显示出来了。但是我想把它改变大小保存。有没有朋友可以给点提示呢?

顺便问一下有人懂Inter_ijl的吗? 我贴出如下代码希望有人可以指点下

//Inter ijl动态库对图片的操作
BOOL JPEGReduce(char *cFileName,BYTE *byBuffer,DWORD dwPicLen)
{
	BOOL bres;//BOOL resault
	IJLERR jerr;//IJL ERROR
	DWORD dwWidth;
	DWORD dwHeight;
	DWORD dwnChannel;
	DWORD dwWholeimagesize;
	BYTE * byPicBuf=NULL;

	JPEG_CORE_PROPERTIES jcprop;
	bres =TRUE;
	jerr=ijlInit(&jcprop);
	if(IJL_OK!=jerr)
	{
		bres=FALSE;
		return FALSE;
	}
	jcprop.JPGBytes=byBuffer;
	jerr=ijlRead(&jcprop,IJL_JBUFF_READPARAMS);
	if(IJL_OK!=jerr)
	{
		bres=FALSE;
		return FALSE;
	}
	dwWidth=(jcprop.JPGWidth+1)>>2;
	dwHeight=(jcprop.JPGHeight+1)>>2;
	dwnChannel=3;
	dwWholeimagesize=(dwWidth*dwHeight*dwnChannel);
	byPicBuf=new  BYTE[dwWholeimagesize];
	if(NULL==byPicBuf)
	{
		bres=FALSE;
		return FALSE;
	}
	jcprop.DIBWidth=dwWidth;
	jcprop.DIBHeight=dwHeight;
	jcprop.DIBChannels=dwnChannel;
	jcprop.DIBColor=IJL_YCBCR;
	jcprop.DIBPadBytes=0;
	jcprop.DIBBytes=byPicBuf;
	switch(jcprop.JPGChannels)
	{
		case 1:
			{
				jcprop.JPGColor=IJL_G;
		        break;
	        }
		case 3:
			{
				jcprop.JPGColor=IJL_YCBCR;
			}
		default:
			{
				jcprop.DIBColor=(IJL_COLOR)IJL_OTHER;
				jcprop.JPGColor=(IJL_COLOR)IJL_OTHER;
				break;
			}

	}
	jerr=ijlRead(&jcprop,IJL_JBUFF_READONEHALF);
	if(IJL_OK!=jerr)
	{
		bres=FALSE;
		return FALSE;
	}
	jcprop.JPGFile=cFileName;
	jerr=ijlWrite(&jcprop,IJL_JBUFF_WRITEWHOLEIMAGE);
	if(IJL_OK!=jerr)
	{
		bres=FALSE;
		return FALSE;
	}
	return TRUE;

}

 

加载中
0
那朵花
那朵花
问题解决了 最后我用opencv的如下代码解决了问题
//OpenCV缩小图片
BOOL CVJPEGReduce(char *cFileName,char *outFileName)
{	
	IplImage *img=cvLoadImage(cFileName);
	assert(img->width%2==0&&img->height%2==0);
	IplImage *halfimg=cvCreateImage(cvSize(img->width/2,img->height/2),img->depth,img->nChannels);
	//cvPyrDown(img,halfimg,CV_GAUSSIAN_5x5);
	cvResize(img,halfimg,CV_INTER_LINEAR);
	cvSaveImage(outFileName,halfimg);
	cvReleaseImage(&img);
	cvReleaseImage(&halfimg);
	return TRUE;
}
0
久欠幸福
久欠幸福

python版本的

from PIL import Image
im = Image.open('1.jpg')
#使用备份操作
im1 = im.copy()
w,h = im1.size()
im1.resize((w/2,h/2))
im1.save('2.jpg')
0
z
zhongxh
找个操作图像的库不就行了
0
iSea
iSea
java的用thumbnail吧
一号男嘉宾
一号男嘉宾
+1
0
那朵花
那朵花

感谢各位大神 我用的是mfc

返回顶部
顶部