我有一个TWICImage,IWicBitmap和一个IWicBitmapSource,可以很好地显示所有支持的图形文件格式,允许旋转,水平翻转,垂直翻转,缩放和剪切.所有这些似乎都运行良好,我可以得到WicImages像素格式,但我无法弄清楚如何更改或设置TWICImage的pixelformat.
我创建了一个对话框来返回WICPixelFormatGUID以用作转换的pixelformat.
任何人都可以共享一些代码,演示如何使用IWICColorTransform或其他Wincodec方法更改WicImage的pixelformat?
法案
它现在到2011年中期......所以对于那些可能想知道的人我试过这个并且它似乎有用(它使用Developer Express的TcxImage,但我怀疑TImage也能正常工作):
procedure TForm1.N16bitBGR1Click( Sender: TObject );
var
wicImg: TWICImage;
wicBitmap: IWICBitmap;
iBmpSource: IWICBitmapSource;
puiWidth, puiHeight: UINT;
iConverter: IWICFormatConverter;
begin
if cxImage1.Picture.Graphic is TWICImage then
begin
Screen.Cursor := crHourGlass;
try
wicImg := TWICImage( cxImage1.Picture.Graphic );
wicImg.ImagingFactory.CreateFormatConverter( iConverter );
iBmpSource := wicImg.Handle as IWICBitmapSource;
iBmpSource.GetSize( puiWidth, puiHeight );
iConverter.Initialize( iBmpSource, GUID_WICPixelFormat16bppBGR555, WICBitmapDitherTypeNone, nil, 0,
WICBitmapPaletteTypeMedianCut );
wicImg.ImagingFactory.CreateBitmapFromSourceRect( iConverter, 0, 0, puiWidth, puiHeight, wicBitmap );
if Assigned( wicBitmap ) then
wicImg.Handle := wicBitmap;
cxImage1.Repaint;
cxImage1.Update;
cxImage1.Invalidate;
dxStatusBar1.Panels[ 0 …Run Code Online (Sandbox Code Playgroud) FMX控件没有颜色属性.什么是FMX相当于VCL.TColor?
FMX.Panel1.Color:= clBlack
我正在尝试安装一个名为JamShellBrowser的商业组件,但它不会安装.
我联系了开发人员,但同时我想知道:
我检查了IDE的帮助,但是我找不到任何关于vrc文件的内容,我搜索了Delphi vrc并没有找到任何可以帮助我的东西.
错误消息是:
检查项目依赖性......
编译JamShellDelphiXE4.dproj(Release,Win32)
"JamShellDelphiXE4.vrc"的brcc32命令行
c:\ program files(x86)\ embarcadero\rad studio\11.0\bin\cgrc.exe -c65001 JamShellDelphiXE4.vrc -foJamShellDelphiXE4.res
[BRCC32错误] JamShellDelphiXE4.vrc(2):找不到文件:JamShellDelphiXE2_Icon.ico
失败
经过时间:00:00:00.1
我在组件文件夹中搜索了一个ico文件,但没有...因此消息,但即使我MAINICON ICON "JamShellDelphiXE2_Icon.ico"从vrc文件中删除该行甚至删除vrc文件,它在我尝试安装时自动生成.
几个月前我从Delphi 2010转移到了XE4并注意到了新的vrc文件,但我不知道它是什么或如何处理这些文件.
有没有一种方法来确定是否已使用UPX压缩了exe文件?
确定exe文件是否已被压缩的函数非常好,除了我发现代码有问题.如果调用函数IsUPXCompressed,则尝试运行upx,upx无法保存它修改的文件.在函数中没有正确共享权限的东西.我已经测试了几个小时.如果我不调用该方法,那么UPX可以毫无问题地编写文件.你调用它然后尝试运行UPX它不会保存文件.尝试写入文件时,UPX报告IOException权限被拒绝错误.
任何人都可以在代码中发现可能导致此问题的错误吗?
谢谢
确定exe文件是否已被压缩的函数非常好,除了我发现代码有问题.如果调用函数IsUPXCompressed,则尝试运行upx,upx无法保存它修改的文件.在函数中没有正确共享权限的东西.我已经测试了几个小时.如果我不调用该方法,那么UPX可以毫无问题地编写文件.你调用它然后尝试运行UPX它不会保存文件.尝试写入文件时,UPX报告IOException权限被拒绝错误.
任何人都可以在代码中发现可能导致此问题的错误吗?
谢谢
在Windows 7上使用Delphi 2010安装超过4 GB的内存时,有没有办法获得总内存和可用内存?
此代码的返回值不超过3.99 GB:
var
Memory: TMemoryStatus;
Memory.dwLength := SizeOf( Memory );
GlobalMemoryStatus( Memory );
dwTotalPhys1.Caption := 'Total memory: ' + IntToStr( Memory.dwTotalPhys ) + ' Bytes ' + '(' + FormatByteSize
( Memory.dwTotalPhys ) + ')';
dwAvailPhys1.Caption := 'Available memory: ' + IntToStr( Memory.dwAvailPhys ) + ' Bytes ' + FormatByteSize
( Memory.dwAvailPhys ) + ')';
Run Code Online (Sandbox Code Playgroud) 如果删除一行然后在TSynMemo中插入一个新行,如何更新UndoList和RedoList以便可以使用SynMemo.Undo撤消更改?
SynMemo1.BeginUpdate;
iLineIndex := SynMemo1.Lines.IndexOf( SynMemo1.LineText );
SynMemo1.Lines.Delete( iLineIndex );
iStartTag := SourceStyleComboBox1.CurText;
iEndTag := SourceStyleComboBox1.CurText;
System.Insert( '/', iEndTag, 2 );
iHTML := iStartTag + iElement + iEndTag;
SynMemo1.Lines.Insert( iLineIndex, iHTML );
SynMemo1.EndUpdate;
Run Code Online (Sandbox Code Playgroud)
编辑 我试过这个,但撤消和重做不能正常工作......我的意思是这是在撤消后,线路没有恢复到行动之前的状态.
StartOfBlock.Line := SynMemo1.CaretY;
StartOfBlock.Char := 0;
EndOfBlock.Line := SynMemo1.CaretY;
EndOfBlock.Char := Length( iHTML );
SynMemo1.UndoList.BeginBlock;
SynMemo1.UndoList.AddChange(crInsert, StartOfBlock, EndOfBlock, iHTML, smNormal);
SynMemo1.UndoList.EndBlock;
SynMemo1.RedoList.BeginBlock;
SynMemo1.RedoList.AddChange(crInsert, StartOfBlock, EndOfBlock, iHTML, smNormal);
SynMemo1.RedoList.EndBlock;
Run Code Online (Sandbox Code Playgroud)
我找不到有关设置StartOfBlock和EdifOfBlock参数的任何指导.应该组合两个"动作",以便"组合"动作只有一个撤消和重做 - "插入和删除"选项eoGroupUndo = True.
有谁知道一个可以读取多帧图标的类?搜索互联网并未提供任何信息.
我尝试使用Alan Peter Stotz的IconTools 2.0,它将图标正确加载到列表中,但8位和4位图标的位深度返回0.正确返回32位和24位图标帧的bitdepth,然而.
查看时图标本身看起来正确...只是所提到的位的bitdepth错误.
编辑#2 在这里评论TLama的评论是一些未经测试的代码:
function NumberOfIcons ( AFileName: string ): integer;
var
iNumberOfIcons: Integer;
begin
iNumberOfIcons := ExtractIcon ( hInstance, PChar ( AFilename ), UINT ( -1 ) );
Result := iNumberOfIcons;
end;
function ExtractAnIcon ( AFilename: string; AIndex: integer ): TBitmap;
var
icoHandle: HIcon;
iBitmap: TBitmap;
iIcon: TIcon;
iNumberOfIcons, i: Integer;
begin
Result := nil;
iBitmap := TBitMap.Create;
iIcon := TIcon.Create;
try
// Get the number of Icons
iNumberOfIcons := ExtractIcon ( hInstance, PChar ( …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在TFileOpenDialog预览中显示图像?
我正在使用ImageEn显示图像信息并向对话框添加其他文件类型支持.例如......我可以加载有关jp2,j2k和其他不支持的文件类型的图像信息,但是如何使用ImageEn加载不支持的图像类型以进行预览.
我在对话框中显示图像信息,但是我无法找到有关如何将不支持的图像加载到PreviewHandler中的任何信息.我可以使用ImageEnIO来获取文件信息以及图像的位图.

TFileOpenDialog是否使用预览处理程序来显示图像或是否需要其他方式?
对不起,我没有显示图像的代码,但我不知道如何实现它.
Rodrigo评论了Delphi VCL应用程序中的托管预览处理程序.Windows资源管理器不使用预览处理程序来预览图像...所以我假设TFileOpenDialog使用与Windows资源管理器相同的API,但我甚至不确定这一点.http://theroadtodelphi.wordpress.com/2013/05/24/hosting-preview-handlers-in-delphi-vcl-applications/
如果这个问题过于宽泛而无法在此接受,我将删除该问题.
即使使用vcl样式,某些组件也会使用Color属性设置绘制其颜色.因此,当使用Metro深色样式(接近黑色)并将组件颜色设置为clWindow时,组件颜色与样式不匹配.有没有办法在使用vcl.style时获取表单背景颜色,以便可以将组件的颜色属性设置为匹配表单样式的背景颜色?
可以通过在样式设计器中加载样式来获取颜色,但我想在运行时获取颜色值.
procedure TGridThread.Execute;
var
i: integer;
iIEBitmap: TIEBitmap;
iWidth: integer;
iHeight: integer;
iImageCount: integer;
iArrayOfBitmaps: array of TBitmap;
begin
inherited;
{ Free the thread onTerminate }
FreeOnTerminate := True;
if not Terminated then
begin
if not Terminated then
begin
Synchronize(
procedure
begin
iIEBitmap := TIEBitmap.Create(Form1.ImageEnView1.IEBitmap);
iWidth := Form1.ImageEnMView1.ImageOriginalWidth[0];
iHeight := (Form1.ImageEnMView1.ImageOriginalHeight[0] + iSpaceBetweenImages) *
Form1.ImageEnMView1.ImageCount;
iImageCount := Form1.ImageEnMView1.ImageCount;
end);
SetLength(iArrayOfBitmaps, iImageCount);
Synchronize(
procedure
begin
for i := 0 to iImageCount - 1 do // [DCC Error] Unit1.pas(334): E1019 For loop control …Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-2010 ×4
delphi-xe4 ×3
compression ×1
exe ×1
firemonkey ×1
icons ×1
synedit ×1
upx ×1
vcl-styles ×1