问题标签 [drawing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
593 浏览

visual-c++ - CDC文本绘制问题

我正在尝试使用 CDC::ExtTextOut() 将文本绘制到设备上下文(CDC),但我得到了垃圾输出。绘制的输出文本是奇怪的字体。

传递给我的 CDC 指针源自 unicode 构建 ActiveX 控件 (.ocx)。文本绘制代码驻留在 ANSI 构建 DLL 中。

此设置中似乎存在某种不兼容性。

有没有人遇到过这种情况,你是如何解决的?

谢谢。

0 投票
5 回答
1166 浏览

drawing - Photoshop撤消系统

这个问题可能适用于一般的绘图系统。我想知道如何在 PS 中实现撤消功能。程序是否在每次操作之前拍摄画布的快照?如果是这样,这不会导致巨大的内存需求吗?我已经研究了命令模式,但我不太明白这将如何应用于绘图。

问候,门诺

0 投票
3 回答
1709 浏览

c# - GDI+ 离屏缓冲滚动

我正在使用 C# GDI+ 创建一个自定义控件。

快速解释...该控件将在屏幕上显示 500 像素,但可能包含 500000 像素的信息。因此,虽然我一次只显示 500 像素,但我显然需要在水平面(左右)滚动。棘手的部分是每个 500 像素的位图块需要一段时间(在 100 毫秒 - 1000 毫秒之间)来渲染。

所以我的计划是在内存中维护一个 1500px 的位图。即 500px 可见部分和 500px 可见区域的任一侧,并在用户滚动时异步绘制屏幕外部分。

我想要一些反馈、建议、批评或代码示例来帮助我实现这一目标。这看起来相当简单,但经过几次初步测试尝试后,它被证明比人们想象的要困难得多。

谢谢。

0 投票
2 回答
20311 浏览

c# - 在图像上绘制叠加层

我有一个用户可以缩放/滚动的图像。我想在不同的图层上绘制一些矩形/圆圈(例如:为图片中识别的每个人的脸部绘制一个圆圈)。

矩形位置是相对于图像的。

如何创建这样的叠加层?

0 投票
2 回答
731 浏览

c# - GDI+:视觉选择指示器的 DrawReversible 替代方案?

我一直在寻找另一种在不使用和相关 XOR 方法的情况下为视觉对象(如选定的边缘、线条等)绘制选择指示符的替代方法。原因是不需要的异或“伪影”、不适用于位图的可逆性、无法控制实际视觉外观和速度缓慢。ControlPaint.DrawReversibleFrame

另一方面,如果用户决定取消选择一两个对象,我想避免重新绘制整个场景(实际上是地图),因为重新绘制可能会非常昂贵。

所以我能看到的唯一选择是直接在 a 上实现一些基本的绘图逻辑Bitmap,但在像素更改之前存储像素的先前内容。然后(理论上)如果用户选择取消选择该边缘,我将能够重新应用选定边缘矩形的旧内容。

我的问题是您是否认为这是一个好主意,或者您是否看到我的问题的其他替代方案(在 GDI+ 内)?

提前致谢

0 投票
2 回答
2134 浏览

iphone - 如何使用 iPhone SDK 清除圆角矩形外的角?

我正在尝试实现自定义视图。此视图应显示由灰色圆形矩形边框包围的图像。我可以让图像和边框正常显示,但是,由于边框有圆角,我需要一种方法来清除这些角,以便它们正确显示视图后面的任何内容。我怎样才能做到这一点?

似乎我可以使用CGContextClearRect,但是我不必多次调用它,重建圆角之外的区域吗?这听起来过于复杂。

有没有更好的方法来创建这个视图?

这是我当前的代码:

0 投票
1 回答
2271 浏览

java - Java Swing/AWT 中的 Vista 玻璃边框效果

我正在尝试使用类似 Vista Aero Glass 的背景创建覆盖层来代替普通窗口。我的部分答案似乎在这里,但我想知道如何在 Swing/AWT 中获得模糊效果。看起来像一个开始:

...但我真的很想获得一场势均力敌的比赛。看来流程应该是:

  1. 模糊背景图像
  2. 涂上透明的灰色(或任何你想要的背景颜色)
  3. 然后绘制不透明的窗口内容

如果我做对了,我可能会加入 Aero 窗口边框阴影。

我在正确的轨道上吗?我应该多精确地进行模糊以获得相同的外观?也许有人已经解决了这个问题?(作为参考,打开 Vista 开始菜单并查看右侧。)

0 投票
1 回答
690 浏览

streaming - 如何拦截高级 GDI 绘制命令?

我正在尝试制作一个允许远程访问其他应用程序(在不同机器上运行)的应用程序。这个想法是让用户透明地访问某些应用程序,我基本上有两个选择:

  • 应用程序流
  • 拦截绘图命令并在客户端重现它们

(当然,输入是从客户端重定向到服务器的)

我有一个带有应用程序流的工作版本,但我不知道如何通过挂钩 Win API 来做到这一点......

有任何想法吗 ?

0 投票
1 回答
1691 浏览

objective-c - touchesMoved 和 drawRect 的问题

我有一个我似乎无法弄清楚的棘手错误,我认为它与 touchesMoved 的实现方式有关。

在 touchesMoved 中,我检查触摸的位置(if 语句),然后相应地在触摸点附近的 40 x 40 区域调用 setNeedsDisplayWithRect。在 DrawRect 中发生的情况是,如果之前有一个白色图像,则会放下一个黑色图像,反之亦然。在调用 setNeedsDisplayWithRect 的同时,我在布尔数组中设置了一个布尔变量,这样我就可以跟踪当前图像是什么,从而显示相反的图像。(其实我并不总是翻转图像...我看第一次触摸会做什么,比如从黑色切换到白色,然后在所有后续触摸上放置白色图像,所以有点像绘图或与图像一起删除)。

我的问题是布尔数组似乎与我放下的图像格格不入。只有当我在屏幕上快速拖动时才会发生这种情况。最终布尔数组和图像不再同步,即使我同时设置它们。知道是什么原因造成的,或者我能做些什么来解决它?

这是我的drawRect:

0 投票
2 回答
4420 浏览

python - 使用 pygtk 和 glade 将 pixbuf 绘制到绘图区域

我正在尝试在 python 中创建一个 GTK 应用程序,我可以在其中将加载的图像绘制到单击它的屏幕上。我尝试这样做的方法是将图像加载到 pixbuf 文件中,然后将该 pixbuf 绘制到绘图区域。

主要代码行在这里:

这应该只是将 pixbuf 绘制到左上角的图像上,但除了白色图像之外什么都没有显示。我已经通过将 pixbuf 放入 gtk 图像来测试它是否可以加载。我在这里做错了什么?