我想把按jpeg格式有损或无损压缩的数据,还原为bmp格式,看了网上一些介绍jpeg格式的文章和压缩解压缩的文章,格式差不多了,可压缩解压缩的过程还是搞不清楚,哪位可以详细介绍一下呢?谢谢!
解决方案 »
- 使用IE打开一个网页的问题
- 请问像excel那样的报表是什么控件做的?
- "多步操作产生错误,请检查每一步状态的值"异常问题
- 各位好,關於在DOS下運行,我有個比較急的問題想請教諸位!~~
- 请帮忙解决一下TStringGrid的问题
- 一个有关"IntToStr 将整型数转换为字符串"的问题
- 怎么读取windows剪贴板里的图片
- 关于Midas发布的问题:在我的机器上运行正常,在其他的电脑上就说什么ole错误(我用installShield自动搜索过dll..)请问到底应该怎样配置?
- TO_CHAR在adoquery的SQL里面不能使用吗?
- 关于判断的问题:假如在form1里有Edit1、Edit2和Edit3,如果是查询,有7种情况:
- 请问大家有没有合租房间啊 哪里有提供一下谢谢啊!
- 我的隔壁是只狼(三)
//把.jpeg文件转化成.bmp文件后保存在系统的windows目录下mywallpaper.bmp
var
pic_jpeg:TJpegImage;
pic_bmp:TBitMap;
begin
pic_jpeg:=TJpegImage.Create;
try
pic_bmp:=TBitMap.Create;
try
pic_jpeg.LoadFromFile(aPicFileName);
pic_bmp.Assign(pic_jpeg);
pic_bmp.SaveToFile(aInSysFileName);
finally
pic_bmp.Free;
end;
finally
pic_jpeg.Free;
end;
end;
var
JPG: TJpegImage;
BMP: TBitmap;
begin
BMP := TBitmap.Create;
JPG := TJpegImage.Create;
try
JPG.LoadFromFile(Source);
BMP.Assign(JPG);
BMP.SaveToFile(Target);
finally
BMP.free;
JPG.Free;
end;
end;
procedure ZoomBmp(Source: String; dWidth, dHeight: Integer; var des: TBitmap);
var
ori,imagen: TBitmap;
dispositivo_o, dispositivo_d: HDC;
pepito: HBitmap;
begin
try
ori := Tbitmap.Create;
des := TBItmap.Create;
imagen := TBitmap.Create;
imagen.LoadFromFile(Source);
ori.handle := imagen.handle;
des.width := dWidth;
des.height := dHeight;
dispositivo_o := CreateCompatibleDC(0);
dispositivo_d := CreateCompatibleDC(0);
SelectObject(dispositivo_o, ori.handle);
pepito := SelectObject(dispositivo_d, des.handle);
SetStretchBltMode(dispositivo_d, STRETCH_HALFTONE);
StretchBlt(dispositivo_d, 0, 0, dWidth, dHeight, dispositivo_o, 0, 0, ori.width, ori.height, SRCCOPY);
SelectObject(dispositivo_d, pepito);
finally
ori.Free;
DeleteObject(pepito);
DeleteDC(dispositivo_o);
DeleteDC(dispositivo_d);
end;
end;采用以上方法,效果还可以,失真肯定会有的,只是多少的问题.
bmp这种位图格式到jpg究竟压缩掉了那些东东,该怎么还原
我只知道一种方法的皮毛,就是把颜色相同的区域(比如颜色代码是01001,应该是一个矩阵)转换为只存储颜色代码和区域(或位置)的代码,bmp To jpg 的压缩程度一定程度上也就是颜色(色深)相似度的范围
解码方式有很多种,这恐怕一时说不清楚,就算是vc都至少有2种
完全错了jpeg.pas里只是对libjpeg的封装和转换成TBitmap位图的相关代码LZ可下份libjpeg,细节都有数字解码完成后主要步骤如下:反量化,重排列数据为8x8矩阵,IDCT,转YcrCb到RGB...