我有一个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) 如何在Delphi MacOS应用程序中嵌入WebView(嵌入式Web浏览器)?
它似乎没有出现Webkit标头包含在XE2中.
我使用TMimeMess来解码基于Synapse的SMTP服务器的传入电子邮件.
我发现,为了解码50MB MIME消息(带附件的简单文本),TMimeMess使用了600-800MB的内存.
在这里解码代码:
FMimeMsg.Header.DecodeHeaders(FMimeMsg.MessagePart.Lines);
FMimeMsg.MessagePart.DecomposeParts;
ExtractPartsFromMess(FMimeMsg.MessagePart);
...
procedure ExtractPartsFromMess(AMimePart: TMimePart);
var i: integer;
begin
if AMimePart.GetSubPartCount = 0 then
Begin
if (AMimePart.PrimaryCode = MP_TEXT) then
Begin
AMimePart.DecodePart;
FBody.Add(string(ReadStrFromStream(AMimePart.DecodedLines,AMimePart.DecodedLines.Size)));
end
else if (AMimePart.PrimaryCode = MP_BINARY) then
Begin
if AMimePart.FileName <> '' then
Begin
AMimePart.DecodePart;
AMimePart.DecodedLines.SaveToFile(FPathToIncomingFolder+AMimePart.FileName);
end;
end;
end
else
Begin
for i:=0 to AMimePart.GetSubPartCount-1 do
Begin
ExtractPartsFromMess(AMimePart.GetSubPart(i));
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在使用CodeGear RAD Studio IDE.
为了使用命令行参数测试我的应用程序,我在"运行 - >参数"菜单中使用了几次"参数"字段.
但每次我提供新值时,都无法从"下拉框"中删除它.
我需要清理这个字段(擦除所有值),因为在某些情况下有关于它们的信息,我不想与偶尔可能使用我的机器的人分享.
我该如何清理这个字段?
我从github下载了一个项目,然后尝试构建它。
但是,一旦 Gradle 运行,Android Studio (2.3.3) 的事件日志向我展示了这一点:
Gradle sync failed: Cause: com/android/build/gradle/BaseExtension
Consult IDE log for more details (Help | Show Log)
Run Code Online (Sandbox Code Playgroud)
并且
Error:(18, 0) com/android/build/gradle/BaseExtension
<a href="openFile:C:\Users\Gustavo\AndroidStudioProjects\simpletask-android\app\build.gradle">Open File</a>
Run Code Online (Sandbox Code Playgroud)
Gradle 似乎在正确的位置找不到 Kotlin,但我不知道如何改变这一点。
Kotlin 已安装并更新(至 1.1.3 版)。
它还被配置为项目中“app”模块的依赖项。
但是,如最后一张图片所示,项目看到的外部库版本是 1.0.6 而不是 1.1.3。
这是问题吗?如何更改此外部库?
使用Delphi XE2中的TSQLConnection组件连接到DataSnap服务器.
我的问题是,如果我们在3秒后无法连接,我想中止连接尝试,但是设置驱动程序的ConnectTimeout属性似乎没有任何影响(它在放弃之前仍然等待大约20秒) .
我在一个线程中运行它,所以我可以向线程发布一条消息(线程消息队列是否被服务取决于我认为这个阻塞调用是如何创建的).即使我的线程消息处理程序运行,我也不确定如何中断阻塞调用以设置TSQLConnection.Connected属性(在线程的Execute方法中设置).
我不想调用TerminateThread,因为这似乎有点过分,并且会留下(如果我理解的话)分配给线程堆栈的内存.有关如何中断此连接过程,或访问基础Indy组件并明确设置连接超时的任何想法将不胜感激.
谢谢!
fConnection := TSQLConnection.Create(nil);
with fConnection do
begin
DriverName := 'DataSnap';
Params.Values['CommunicationProtocol'] := 'tcp/ip';
Params.Values['DatasnapContext'] := 'datasnap/';
Params.Values['HostName'] := '127.0.0.1';
Params.Values['Port'] := '211';
Params.Values['ConnectTimeout'] := '3000';
KeepConnection := true;
LoginPrompt := true;
end;
// Where it blocks for up to 20 seconds (if host unavailable)
fConnection.Connected := True;
Run Code Online (Sandbox Code Playgroud) 在多线程应用程序中,当我创建多个线程时,如果它们保持睡眠和唤醒,如何只将调试器保留在其中一个中?我正在使用C#.
补充:我的应用程序需要创建一些线程来控制,每个线程都有自己的(简化)硬件设备.
每个都从其设备返回一些数据,它会影响另一个线程.
要检查一个单独的线程是否正常工作,我需要"冻结"一个并在特定时刻检查它是否会"伤害"其他线程.
delphi ×5
delphi-xe2 ×2
android ×1
c# ×1
debugging ×1
delphi-2007 ×1
delphi-2010 ×1
ide ×1
kotlin ×1
macos ×1
memory ×1
mime ×1
smtp ×1
webkit ×1