错误是什么呢?可能这个跟image控件有关系。
毕竟一张3434x4233的BMP图片文件大小都过1M了吧,你的image控件能否承受呢?记得它好象有个什么属性可以调整的,忘了
毕竟一张3434x4233的BMP图片文件大小都过1M了吧,你的image控件能否承受呢?记得它好象有个什么属性可以调整的,忘了
解决方案 »
- 运行项目出现:File not found: 'WinHttp_TLB.dcu'
- 如何提取网页报表中的数据
- 关于decision club 将横坐标维数分段统计的问题
- 关于Delphi的WEB开发
- treeview怎样把两个表的一对多关系显示出来啊
- 请问一下在delphi中filelistbox和Webbrowser是什么控件?
- ????erp是关系实体模型吧?还是企业信息管理????
- 调查:现在有多少人在用MSN,使用中和使用过得回复并留下自己得MSN.
- 关于CGI论坛的问题
- 在文本处理方面,什么语言能达到我的要求?请大家推荐。谢谢
- 怎样使用全局变量
- 现在我需要快捷键方式,用HOOK有缺陷,在操作别的程序时,也会响应;用MainMenu时候又没有我想要的Ctrl+F4, 怎么办
MyJpeg: TJpegImage;
bmp: TBitmap;
begin
bmp:= Tbitmap.Create;
MyJpeg:= TJpegImage.Create;
bmp.LoadFromFile('c:\aa.BMP'); // 为了测试aa.bmp 图像一定要大
MyJpeg.Assign(Bmp); // 我想这句是造成问题的关键吧,如果小图片没问题,对于大图片就...
MyJpeg.SaveToFile('c:\test.JPG');
bmp.free;
myjpeg.free;
end;
现在跟代码没有关系了吧!有没有办法不用MyJpeg.Assign(Bmp);这句,直接转换出,这样对于大图片就不会有问题了
我用过你
------
var
MyJpeg: TJpegImage;
bmp: TBitmap;
begin
bmp:= Tbitmap.Create;
MyJpeg:= TJpegImage.Create;
bmp.LoadFromFile('c:\aa.BMP'); // 为了测试aa.bmp 图像一定要大
MyJpeg.Assign(Bmp); // 我想这句是造成问题的关键吧,如果小图片没问题,对于大图片就...
MyJpeg.SaveToFile('c:\test.JPG');
bmp.free;
myjpeg.free;
end;
------------
这段代码,没有问题啊,我的aa.bmp大小是36868k,可以转换啊,没有问题,转换成的
test.jpg大小为1672k!
*********************************************************************************
var
MyJpeg: TJpegImage;
bmp: TBitmap;
begin
bmp:= Tbitmap.Create;
MyJpeg:= TJpegImage.Create;
bmp.LoadFromFile('c:\aa.BMP'); // 为了测试aa.bmp 图像一定要大
MyJpeg.Assign(Bmp); // 我想这句是造成问题的关键吧,如果小图片没问题,对于大图片就...
MyJpeg.SaveToFile('c:\test.JPG');
bmp.free;
myjpeg.free;
end;
*********************************************************************************
是对的,我试过了的
这是为什么??有没有办法不用MyJpeg.Assign(Bmp);这句,直接转换出JPG?还有怎样才能增加一个转换进度?
还有我保存成JPEG文件后,那些文件用ACDSEE等其余软件打开可以,但如果在我自已的DELPHI程序中想再LOADFROMFILE却总是报错——说读不了,我至今仍没搞定,也没管了。
但结果我想知道!帮你up
但没有报错,只是image变灰了,什么都没有。
不知道有没有遇到同样问题的兄弟呢!
确定BMP图象没问题,肯定可以转换!
procedure TStuXXSLForm.LoadImageBitBtnClick(Sender: TObject);
var
MyJpeg:TJpegImage;
begin
inherited;
if OpenPictureDialog1.Execute then
begin
FileName:=OpenPictureDialog1.FileName;
Image1.Picture.LoadFromFile(FileName);
if ExtractFileExt(FileName)='.Bmp' then
begin
MyJpeg:= TJpegImage.Create;
MyJpeg.Assign(Image1.Picture.Bitmap);
FileName:='Photo.Jpg';
MyJpeg.SaveToFile(FileName);
MyJpeg.Free;
end;
end;
end;
还有如何在转换时显示进度??
有一些关于极大位图的处理方法,希望对你有帮助。
//转换BMP到JPG格式**************************************************************
//==============================================================================
procedure BMP2JPG(const Source, Target:string; const Scale: Byte);
var Image: TImage;
JPG: TJpegImage;
begin
Image := TImage.Create(Application);
JPG := TJpegImage.Create;
try
Image.Picture.Bitmap.LoadFromFile(Source);
JPG.Assign(Image.Picture.Bitmap);
JPG.CompressionQuality := Scale;
JPG.Compress;
JPG.SaveToFile(Target);
finally
Image.free;
JPG.Free;
end;
end;
你的问题我想只要先把图像分割小再转换就可以解决了!
解决的办法:
1,购买2G左右的内存(可能我疯掉了,买的越多,说明越疯)。
2,重新写自己的转换算法(很多站点有)。或重写DELPHI的控件。
3,对图进行分割,再合成。
4,我还不知道。