Delphi定制图纸-发光玻璃

2024-01-26

我已经对一些玻璃图像进行了很多实验,例如下面的图像,我开始思考必须有一种方法可以将其放入代码中,这样我就可以将其着色为任何我想要的颜色。它不需要看起来 100% 精确地像下图一样,但我想编写一些代码来绘制椭圆形和玻璃效果(带有一些非常奇特的计算的渐变)。我必须清楚地指出,我对数学很糟糕,而且我知道这需要一些棘手的公式。

我正在做的事情的示例:

椭圆形的边框是简单的部分,椭圆形内部从上到下的渐变也相当容易 - 但是当涉及到使边缘褪色以使顶部和侧面呈现玻璃状外观时 - 我不知道如何去做这件事。

原始左边缘图像:

无论有人能给我指出一个很好的教程,或者如果有人想演示它,我都会非常感激。

这是我到目前为止用来绘制的过程:

//B = Bitmap to draw to
//Col = Color to draw glass image
procedure TForm1.DrawOval(const Col: TColor; var B: TBitmap);
var
  C: TCanvas;       //Main canvas for drawing easily
  R: TRect;         //Base rect
  R2: TRect;        //Working rect
  X: Integer;       //Main top/bottom gradient loop
  CR, CG, CB: Byte; //Base RGB color values
  TR, TG, TB: Byte; //Working RGB color values
begin
  if assigned(B) then begin
    if B <> nil then begin
      C:= B.Canvas;
      R:= C.ClipRect;  
      C.Pen.Style:= psClear;
      C.Brush.Style:= bsSolid;
      C.Brush.Color:= B.TransparentColor;
      C.FillRect(R);
      C.Pen.Style:= psSolid;
      C.Pen.Color:= clBlack;
      C.Pen.Width:= 5;
      C.Brush.Color:= clBlack;
      R2:= R;
      for X:= 1 to 6 do begin
        R2.Bottom:= R2.Bottom - 1;
        C.RoundRect(R2.Left, R2.Top, R2.Right, R2.Bottom,
          Round(R2.Bottom / 1.5), Round(R2.Bottom / 1.5));
      end;
      R2.Left:= R2.Left + 1;
      R2.Right:= R2.Right - 1;
      C.Brush.Color:= Col;
      C.Pen.Width:= 3;
      C.RoundRect(R2.Left, R2.Top, R2.Right, R2.Bottom,
        Round(R2.Bottom / 1.5), Round(R2.Bottom / 1.5));
      C.Brush.Style:= bsSolid;
      C.Pen.Style:= psClear;
      R2:= R;
      R2.Left:= R2.Left + 13;
      R2.Right:= R2.Right - 13;
      R2.Top:= 3;
      R2.Bottom:= (R2.Bottom div 2) - 18;
      CR:= GetRValue(Col);
      CG:= GetGValue(Col);
      CB:= GetBValue(Col);
      for X:= 1 to 16 do begin
        TR:= EnsureRange(CR + (X * 4)+25, 0, 255);
        TG:= EnsureRange(CG + (X * 4)+25, 0, 255);
        TB:= EnsureRange(CB + (X * 4)+25, 0, 255);
        C.Brush.Color:= RGB(TR, TG, TB);
        C.RoundRect(R2.Left, R2.Top, R2.Right, R2.Bottom,
          Round(R2.Bottom / 1.5), Round(R2.Bottom / 1.5));
        R2.Left:= R2.Left + 2;
        R2.Right:= R2.Right - 2;
        R2.Bottom:= R2.Bottom - 1;
      end;
    end;
  end;
end;

所需原料:

  • AlphaBlend http://msdn.microsoft.com/en-us/library/dd183351(v=vs.85).aspx为了达到玻璃般的效果,
  • GradientFill http://msdn.microsoft.com/en-us/library/dd144957(v=VS.85).aspx对于顶部渐变椭圆,
  • MaskBlt http://msdn.microsoft.com/en-us/library/dd145047(v=vs.85).aspx绘图时排除已绘制的非矩形零件,
  • 确实有一些数学,但很简单。

确实有必要将绘图任务分成小步骤并按正确的顺序放置。那么这并不像乍看起来那么不可能。

在下面的代码中,我使用三个临时位图来达到最终目标:

  • 一个内存位图,在上面绘制所有内容以减少闪烁,
  • 需要帮助的临时位图,
  • 用于存储剪切形状的掩码位图。

我不喜欢代码中的注释,但我希望它能说明一切:

unit GlassLabel;

interface

uses
  Classes, Controls, Windows, Graphics, Math;

const
  DefTransparency = 30;

type
  TPercentage = 0..100;

  TGlassLabel = class(TGraphicControl)
  private
    FTransparency: TPercentage;
    procedure SetTransparency(Value: TPercentage);
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
  published
    property Caption;
    property Color;
    property Font;
    property Transparency: TPercentage read FTransparency
      write SetTransparency default DefTransparency;
  end;

implementation

type
  PTriVertex = ^TTriVertex;
  TTriVertex = record
    X: DWORD;
    Y: DWORD;
    Red: WORD;
    Green: WORD;
    Blue: WORD;
    Alpha: WORD;
  end;

  TRGB = record
    R: Byte;
    G: Byte;
    B: Byte;
  end;

function GradientFill(DC: HDC; Vertex: PTriVertex; NumVertex: ULONG;
  Mesh: Pointer; NumMesh, Mode: ULONG): BOOL; stdcall; overload;
  external msimg32 name 'GradientFill';

function GradientFill(DC: HDC; const ARect: TRect; StartColor,
  EndColor: TColor; Vertical: Boolean): Boolean; overload;
const
  Modes: array[Boolean] of ULONG = (GRADIENT_FILL_RECT_H, GRADIENT_FILL_RECT_V);
var
  Vertices: array[0..1] of TTriVertex;
  GRect: TGradientRect;
begin
  Vertices[0].X := ARect.Left;
  Vertices[0].Y := ARect.Top;
  Vertices[0].Red := GetRValue(ColorToRGB(StartColor)) shl 8;
  Vertices[0].Green := GetGValue(ColorToRGB(StartColor)) shl 8;
  Vertices[0].Blue := GetBValue(ColorToRGB(StartColor)) shl 8;
  Vertices[0].Alpha := 0;
  Vertices[1].X := ARect.Right;
  Vertices[1].Y := ARect.Bottom;
  Vertices[1].Red := GetRValue(ColorToRGB(EndColor)) shl 8;
  Vertices[1].Green := GetGValue(ColorToRGB(EndColor)) shl 8;
  Vertices[1].Blue := GetBValue(ColorToRGB(EndColor)) shl 8;
  Vertices[1].Alpha := 0;
  GRect.UpperLeft := 0;
  GRect.LowerRight := 1;
  Result := GradientFill(DC, @Vertices, 2, @GRect, 1, Modes[Vertical]);
end;

function GetRGB(AColor: TColor): TRGB;
begin
  AColor := ColorToRGB(AColor);
  Result.R := GetRValue(AColor);
  Result.G := GetGValue(AColor);
  Result.B := GetBValue(AColor);
end;

function MixColor(Base, MixWith: TColor; Factor: Single): TColor;
var
  FBase: TRGB;
  FMixWith: TRGB;
begin
  if Factor <= 0 then
    Result := Base
  else if Factor >= 1 then
    Result := MixWith
  else
  begin
    FBase := GetRGB(Base);
    FMixWith := GetRGB(MixWith);
    with FBase do
    begin
      R := R + Round((FMixWith.R - R) * Factor);
      G := G + Round((FMixWith.G - G) * Factor);
      B := B + Round((FMixWith.B - B) * Factor);
      Result := RGB(R, G, B);
    end;
  end;
end;

function ColorWhiteness(C: TColor): Single;
begin
  Result := (GetRValue(C) + GetGValue(C) + GetBValue(C)) / 255 / 3;
end;

function ColorBlackness(C: TColor): Single;
begin
  Result := 1 - ColorWhiteness(C);
end;

{ TGlassLabel }

constructor TGlassLabel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := [csOpaque];
  FTransparency := DefTransparency;
end;

procedure TGlassLabel.Paint;
const
  DSTCOPY = $00AA0029;
  DrawTextFlags = DT_CENTER or DT_END_ELLIPSIS or DT_SINGLELINE or DT_VCENTER;
var
  W: Integer;
  H: Integer;
  BorderTop: Integer;
  BorderBottom: Integer;
  BorderSide: Integer;
  Shadow: Integer;
  R0: TRect; //Bounds of control
  R1: TRect; //Inside border
  R2: TRect; //Top gradient
  R3: TRect; //Text
  R4: TRect; //Perforation
  ParentDC: HDC;
  Tmp: TBitmap;
  Mem: TBitmap;
  Msk: TBitmap;
  ShadowFactor: Single;
  X: Integer;
  BlendFunc: TBlendFunction;

  procedure PrepareBitmaps;
  begin
    Tmp.Width := W;
    Tmp.Height := H;
    Mem.Canvas.Brush.Color := Color;
    Mem.Width := W;
    Mem.Height := H;
    Mem.Canvas.Brush.Style := bsClear;
    Msk.Width := W;
    Msk.Height := H;
    Msk.Monochrome := True;
  end;

  procedure PrepareMask(R: TRect);
  var
    Radius: Integer;
  begin
    Radius := (R.Bottom - R.Top) div 2;
    Msk.Canvas.Brush.Color := clBlack;
    Msk.Canvas.FillRect(R0);
    Msk.Canvas.Brush.Color := clWhite;
    Msk.Canvas.Ellipse(R.Left, R.Top, R.Left + 2 * Radius, R.Bottom);
    Msk.Canvas.Ellipse(R.Right - 2 * Radius, R.Top, R.Right, R.Bottom);
    Msk.Canvas.FillRect(Rect(R.Left + Radius, R.Top, R.Right - Radius,
      R.Bottom));
  end;

  procedure DrawTopGradientEllipse;
  begin
    GradientFill(Tmp.Canvas.Handle, R2, MixColor(Color, clWhite, 1.0),
      MixColor(Color, clWhite, 0.2), True);
    PrepareMask(R2);
    MaskBlt(Mem.Canvas.Handle, 0, 0, W, H, Tmp.Canvas.Handle, 0, 0,
      Msk.Handle, 0, 0, MakeROP4(SRCCOPY, DSTCOPY));
  end;

  procedure DrawPerforation;
  begin
    while R4.Right < (W - H div 2) do
    begin
      Mem.Canvas.Pen.Color := MixColor(Color, clBlack, 0.9);
      Mem.Canvas.RoundRect(R4.Left, R4.Top, R4.Right, R4.Bottom, H div 7,
        H div 7);
      Mem.Canvas.Pen.Color := MixColor(Color, clBlack, 0.5);
      Mem.Canvas.RoundRect(R4.Left + 1, R4.Top + 1, R4.Right - 1,
        R4.Bottom - 1, H div 7 - 1, H div 7 - 1);
      Mem.Canvas.Pen.Color := MixColor(Color, clWhite, 0.33);
      Mem.Canvas.MoveTo(R4.Left + H div 14, R4.Top + 1);
      Mem.Canvas.LineTo(R4.Right - H div 14, R4.Top + 1);
      OffsetRect(R4, R4.Right - R4.Left + H div 12, 0);
    end;
  end;

  procedure DrawCaption;
  begin
    Mem.Canvas.Font := Font;
    ShadowFactor := 0.6 + 0.4 * (Min(1.0, ColorBlackness(Font.Color) + 0.3));
    Mem.Canvas.Font.Color := MixColor(Font.Color, clBlack, ShadowFactor);
    DrawText(Mem.Canvas.Handle, PChar(Caption), -1, R3, DrawTextFlags);
    OffsetRect(R3, -Shadow, Shadow);
    Mem.Canvas.Font.Color := Font.Color;
    DrawText(Mem.Canvas.Handle, PChar(Caption), -1, R3, DrawTextFlags);
  end;

  procedure DrawBorderAlias;
  begin
    Mem.Canvas.Pen.Color := MixColor(Color, clBlack, 0.65);
    X := R1.Left + (R1.Bottom - R1.Top) div 2 + 2;
    Mem.Canvas.Arc(R1.Left + 1, R1.Top, R1.Left + R1.Bottom - R1.Top + 1,
      R1.Bottom, X, 0, X, H);
    X := R1.Right - (R1.Bottom - R1.Top) div 2 - 2;
    Mem.Canvas.Arc(R1.Right - 1, R1.Top, R1.Right - R1.Bottom + R1.Top - 1,
      R1.Bottom, X, H, X, 0);
  end;

  procedure DrawBorder;
  begin
    PrepareMask(R1);
    Tmp.Canvas.Brush.Color := clWhite;
    Tmp.Canvas.Draw(0, 0, Msk);
    BitBlt(Mem.Canvas.Handle, 0, 0, W, H, Tmp.Canvas.Handle, 0, 0, SRCAND);
  end;

  procedure DrawCombineParent;
  begin
    BitBlt(Tmp.Canvas.Handle, 0, 0, W, H, ParentDC, Left, Top, SRCCOPY);
    BlendFunc.BlendOp := AC_SRC_OVER;
    BlendFunc.BlendFlags := 0;
    BlendFunc.SourceConstantAlpha := Round(FTransparency * High(Byte) / 100);
    BlendFunc.AlphaFormat := 0;
    AlphaBlend(Mem.Canvas.Handle, 0, 0, W, H, Tmp.Canvas.Handle, 0, 0, W, H,
      BlendFunc);
    PrepareMask(R0);
    MaskBlt(Mem.Canvas.Handle, 0, 0, W, H, Tmp.Canvas.Handle, 0, 0,
      Msk.Handle, 0, 0, MakeROP4(DSTCOPY, SRCCOPY));
  end;

begin
  if HasParent and (Height > 1) then
  begin
    W := Width;
    H := Height;
    BorderTop := Max(1, H div 30);
    BorderBottom := Max(2, H div 10);
    BorderSide := (BorderTop + BorderBottom) div 2;
    Shadow := Font.Size div 8;
    R0 := ClientRect;
    R1 := Rect(BorderSide, BorderTop, W - BorderSide, H - BorderBottom);
    R2 := Rect(R1.Left + BorderSide + 1, R1.Top, R1.Right - BorderSide - 1,
      R1.Top + H div 4);
    R3 := Rect(H div 2 + 1 + Shadow, R1.Top + 1, W - H div 2 - 1,
      R1.Bottom - Shadow);
    R4 := Bounds(H div 2, R1.Bottom - H div 4 + 1, H div 5, H div 4 - 2);
    ParentDC := GetDC(Parent.Handle);
    Tmp := TBitmap.Create;
    Mem := TBitmap.Create;
    Msk := TBitmap.Create;
    try
      PrepareBitmaps;
      DrawTopGradientEllipse;
      DrawPerforation;
      DrawCaption;
      DrawBorderAlias;
      DrawBorder;
      DrawCombineParent;  
      BitBlt(Canvas.Handle, 0, 0, W, H, Mem.Canvas.Handle, 0, 0, SRCCOPY);
    finally
      Msk.Free;
      Mem.Free;
      Tmp.Free;
      ReleaseDC(Parent.Handle, ParentDC);
    end;
  end;
end;

procedure TGlassLabel.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  if AWidth < AHeight then
    AWidth := AHeight;
  inherited SetBounds(ALeft, ATop, AWidth, AHeight);
end;

procedure TGlassLabel.SetTransparency(Value: TPercentage);
begin
  if FTransparency <> Value then
  begin
    FTransparency := Value;
    Invalidate;
  end;
end;

end.

生成上述内容的示例代码(放置一个TImage后台控制):

procedure TForm1.FormCreate(Sender: TObject);
begin
  Font.Size := 16;
  Font.Color := $00A5781B;
  Font.Name := 'Calibri';
  Font.Style := [fsBold];
  with TGlassLabel.Create(Self) do
  begin
    SetBounds(40, 40, 550, 60);
    Color := $00271907;
    Caption := '395 Days, 22 Hours, 0 Minutes, 54 Seconds';
    Parent := Self;
  end;
  with TGlassLabel.Create(Self) do
  begin
    SetBounds(40, 40 + 119, 550, 60);
    Color := $00000097;
    Caption := '0 Days, 1 Hours, 59 Minutes, 31 Seconds';
    Parent := Self;
  end;
end;

随心所欲地调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi定制图纸-发光玻璃 的相关文章

  • Writeln 能够支持 Unicode 吗?

    考虑这个程序 APPTYPE CONSOLE begin Writeln Z end 使用 Consolas 字体的控制台上的输出是 Z Windows 控制台非常有能力支持 Unicode 如该程序所示 APPTYPE CONSOLE u
  • 缓冲区为空,但 IdTCPClient.IOHandler.InputBufferIsEmpty 为 false

    我在使用 idTCPClient 从 telnet 服务器读取缓冲区的以下代码中遇到问题 procedure TForm2 ReadTimerTimer Sender TObject var S String begin if IdTCPC
  • Indy 10 和 sslvTLSv1_2

    我发布的网站目前支持 TLS v1 1 和 TLS 1 2 他们很快将只允许 TLS 1 2 版连接 为此我将 Delphi 5 升级到了 Indy 10 目前 我在代码中创建组件 并且一次运行 3 个线程一切都运行良好 HTTp TIdH
  • 当系统文件实际存在时找不到它

    系统找不到alg exe但它确实存在 c windows system32 alg exe 我最近从 Win 7 x86 迁移到 x64 当我使用 x86 时 我对此没有任何问题 尝试了 Delphi 7 和 XE2 我正在使用的代码 if
  • JavaFX 中画布的最大尺寸

    有谁知道JavaFX中画布的最大尺寸 从一些测试来看 它似乎是 8192 与 IE 相同 在我看来 这很奇怪 或许 可以修改吗 这可能取决于您的显卡的最大纹理大小 因为我相信 使用最常见的硬件加速渲染管道 画布最终将表示为纹理 我不太清楚
  • 所有 html 画布形状都指定最后添加的对象的颜色

    我试图制作一个奥林匹克类型的旗帜 纯粹是为了学习如何用 JavaScript 绘图 这应该画两个圆圈 一个蓝色 一个黑色 这是代码 我对此表示歉意 一直在两个函数之间移动东西 不确定如何非显式地引用上下文 function drawCirc
  • 安装软件包时出现无法加载软件包 %s 错误

    我正在 Delphi 2007 上进行测试 我的小组项目由 2 个包组成 包运行 bpl 它被标记为 仅运行时 并包含一个名为 uMyTestRun pas 的单元 其中定义了一个空的 TFrame 后代 unit uMyTestRun i
  • 如何改变TDateTimePicker的颜色?

    如何更改 a 的颜色TDateTimePicker A 日期和时间选择器可以有一种颜色 通常这是通过设置来完成的Color procedure TForm1 FormCreate Sender TObject begin DateTimeP
  • Delphi TTask - PPL 中匿名函数中的变量捕获如何工作?

    我开始深入研究 Delphi D11 PPL 并编写了这个小例子 procedure TForm2 LaunchTasks const cmax 5 Var ltask ITask i j Integer begin for i 1 to
  • 将 2:1 等距柱状全景图转换为立方体贴图

    我目前正在为网站开发一个简单的 3D 全景查看器 出于移动性能的原因 我使用 Three jsCSS 3 渲染器 https github com mrdoob three js blob master examples css3d pan
  • 如何取消注册我的应用程序的文件格式?

    在 Windows 10 中的 Delphi 10 4 2 win 32 VCL 应用程序中 我注册了 ICO我的图形应用程序的文件格式使用DSiWin32 DSiRegisterUserFileAssoc https github com
  • 如何在 HTML5 画布元素上写入文本?

    是否可以在 HTML5 上编写文本canvas var canvas document getElementById my canvas var context canvas getContext 2d context fillStyle
  • Delphi - 引用在运行时创建的组件

    我正在使用 Delphi 5 并且在运行时创建许多面板 然后在面板上创建按钮 显然也是在运行时创建 我需要这样做 因为将来我可能需要动态创建更多面板 按钮组合 我可以完成所有这些 但我不知道如何引用我创建的面板 因为我找不到访问面板组件名称
  • HTML5 Canvas 元素可以从 Canvas 构造函数创建吗

    我希望能够从构造函数中创建 Canvas 元素 以便我可以创建这样的函数 function createCanvasContext height width var body document getElementsById body 0
  • 如何在TWebBrowser中显示相对路径图像?

    我正在 DesignMode Doc DesignMode On 中使用 TWebBrowser 来编写 HTML 文档 TWebBrowser 中没有加载文档 磁盘上的 HTML 文件 我直接在 TWebBrowser 中从零开始创建文档
  • 向量数学,在两个向量之间的平面上查找坐标

    我正在尝试沿着样条线生成 3d 管 我有样条线的坐标 x1 y1 z1 x2 y2 z2 等 您可以在黄色插图中看到 在这些点上 我需要生成圆圈 其顶点将在稍后的体育场连接 这些圆需要垂直于样条线两条线段的 角 才能形成正确的管 请注意 出
  • Motif 库的水平绘制的 RowColumn 类 (C)?

    我正在使用 Motif Library 来完成我的工作 如果有人不熟悉这个库 您可以在这里找到文件列表https packages ubuntu com xenial amd64 libmotif dev filelist https pa
  • 在 IOS 设备上制作动画时,2 个相互堆叠的动画元素会发生变化(z 索引位置)吗?

    JSFIDDLE http fiddle jshell net 6gdrQ 18 我有 2 个动画元素 一种是简单的旋转脚本 它像硬币一样旋转徽标的中间部分 另一个动画是中间部分翻转时您看到的徽标后面的粒子画布烟雾动画 我遇到的问题是画布烟
  • HTML5 中填充笔划的透明度

    我正在 HTML5 中开发一个涂鸦应用程序 我想做一种桶功能 这个想法是绘制一条路径 它将被关闭并用选定的颜色 描边的颜色 填充 它对于纯色效果很好 但如果我想要透明的描边和填充 我会遇到这个问题 所发生的情况是填充完成到笔划的中间 路径的
  • 在Delphi/Lazarus中设置提示窗口(THintWindow)的大小

    我正在尝试在 Lazarus 中进行自定义提示 到目前为止 我已经动态加载了提示中的文本 并自定义了字体 字体大小和字体颜色 我想限制提示窗口的宽度 有任何想法吗 这是我的代码 type TExHint class THintWindow

随机推荐

  • 使用 Angular UI-Router 保留状态

    我有一个带有 ng view 的应用程序 可以向从联系人列表中选择的联系人发送电子邮件 当用户选择 收件人 时 它会显示另一个视图 页面 他可以在其中搜索 过滤等 发送电子邮件 和 联系人列表 是在 ng view 中加载的不同 html
  • 使用启动方法“spawn”的 Python 多处理不起作用

    我编写了一个 Python 类来并行绘制 pylot 它在默认启动方法是 fork 的 Linux 上工作得很好 但当我在 Windows 上尝试它时 我遇到了问题 可以使用生成启动方法在 Linux 上重现 请参阅下面的代码 我总是会遇到
  • C# 中不区分大小写的 XML 解析器

    我知道您对 XML 所做的一切都区分大小写 然而 现在我发现自己处于一种情况 如果我以某种方式使 xml 名称 属性识别不区分大小写 我正在编写的软件会产生更少的错误 不区分大小写的 XPath 将是上帝派来的 在 C 中是否有一种简单的方
  • 使用 Three.js 实现真实光照(阳光)?

    我正在尝试使用 Three js 创建一个小型第一人称游戏 但我在光照方面遇到了问题 基本上我想模拟太阳并让它旋转 将光线投射到所有物体上 我在用着THREE DirectionalLight目前 它只照亮一个方向 因此立方体的侧面保持黑色
  • 如何从 Maven 依赖项生成 JBoss jboss-deployment-struct

    我们有项目是使用 Maven 构建的 有很多依赖项可以通过设计良好的 pom 文件成功解决 我们需要生成计划部署在 JBoss7AS 上的 sar 模块 我们必须在 META INF jboss deployment struct xml
  • AWS Cognito 中的“访问令牌不包含 openid 范围”

    我正在前端应用程序上运行一个有效的 AWS Cognito 服务 它可以成功执行基本操作 登录 注销 注册等 现在我正在尝试通过后端API获取用户属性 例如 1 用户登录应用程序并获取JWT 2 JWT 正在发送到后端服务器 3 服务器必须
  • 允许参数中的数组

    我有以下 JSON name pizza ingredients name tomato amount 3 unit un name chesse amount 100 unit gr 我使用 POST 将此 JSON 传递到我的控制器 然
  • /langversion 的选项“7.3”无效;必须是 ISO-1、ISO-2、默认值或 1 到 6 范围内的整数

    我正在使用 Visual Studio 17 版本 15 8 5 我的项目目标为 NET Framework 4 8 并且我尝试设置要使用的 C 版本 通过 属性 窗口中的 生成 选项卡 C 7 3 这是可以从下拉列表 然而 构建项目报告失
  • 如何使 Tesseract 更快 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这是一个很遥远的事情 但我必须问 我需要任何可以使 Tesseract OCR 引擎更快的想法 我正在处理由大约 2000 万页文本组
  • 替换某个索引中的字符[重复]

    这个问题在这里已经有答案了 如何替换字符串中某个索引处的字符 例如 我想从字符串中获取中间的字符 例如abc 如果该字符不等于用户指定的字符 那么我想替换它 也许是这样的 middle I don t know how to get the
  • 尝试解决 /usr/local/opt/openssl/lib/libssl.1.0.0.dylib (LoadError) 导致错误的解释器:/usr/local/opt/python/bin/python2.7

    Brew 升级后 我无法再运行任何 Ruby on Rails 应用程序 我收到此错误消息 dlopen Users ll rbenv versions 2 6 2 lib ruby 2 6 0 x86 64 darwin18 openss
  • 无法在 Windows 上启动本机消息传递主机,“COMSPEC 未设置”

    我有一个 Chrome 扩展 可以与本机消息传递主机通信以获取一些数据 问题是 当我通过快捷方式或任务栏中固定的快捷方式启动 Chrome 浏览器时 扩展程序无法连接到主机 我总是收到错误 无法启动本机消息传递主机 但是 如果我启动chro
  • 垄断检查玩家是否拥有一套

    players player1 currentpos 0 prevpos 0 startpos 0 balance 1500 player2 currentpos 0 prevpos 0 startpos 0 balance 1500 po
  • C# 中的 ToString() 需要什么?

    我在 c Sharp 中使用下面的代码 但是两个 WriteLine 语句都给出相同的结果 25 那么在 c Sharp 中转换 Tostring 需要什么 有什么特殊目的吗 using System using System Collec
  • 从进程ID获取CPU信息

    如果有人可以please帮助我 那就太好了 这似乎是一件艰难的事 从进程 ID 开始 我需要能够获取 该进程占用了多少 CPU 进程使用CPU多长时间 这需要用 Cocoa Objective C 或 C 编写 它还需要通过 Snow Le
  • 为什么第 3 行没有发生动态绑定?

    class A public void fun double d System out println A class B public void fun int i System out println B class C extends
  • MySQL 中的复杂足球联赛动态排序?

    我有一个足球联赛的 比赛 表 如下所示 date home team id away team id home score away score 1 2 6 21 3 1 7 19 我不知道如何动态生成按 Wins 排序的团队 ID 列表
  • 函数参数的默认值为“passing_parametr”*2

    我写了以下内容 include
  • .ondelete 带有部分的 SwiftUI 列表

    我无法发布在 SwiftUI 列表中删除和移动行的方法 我有类别模型 struct Category Identifiable var id UUID var title String var number Int var items Ch
  • Delphi定制图纸-发光玻璃

    我已经对一些玻璃图像进行了很多实验 例如下面的图像 我开始思考必须有一种方法可以将其放入代码中 这样我就可以将其着色为任何我想要的颜色 它不需要看起来 100 精确地像下图一样 但我想编写一些代码来绘制椭圆形和玻璃效果 带有一些非常奇特的计