Tag: graphics

将System.Drawing.Bitmap缩放到给定大小,同时保持宽高比

我想缩放一个System.Drawing.Bitmap至lessless于一些固定的宽度和高度。 这是为了在网站上为图片库生成缩略图,所以我想保持宽高比相同。 我有一些解决scheme,但似乎没有真正做我所需要的; 他们围绕缩放的基础上保持宽度或高度相同,但不改变两者。 一个例子: 如果我有一个4272×2848的图像,并且我想通过768将它缩放到1024的大小,那么所得的图像应该是1024×683,并填充(用黑色边框)到1024×768。 我怎样才能做到这一点图像大于所需的大小和小于要求的大小,也填充图像不出来的确切大小,我需要一次缩放?

你怎么想出一个软件公司的好名字?

我正在创build一个网页devise商店,并希望进入定制软件开发。 所以我现在面临的问题是为公司起一个名字。 我想要一些很酷且时髦的东西,但我不确定去哪里寻求创意。 有人build议,我把它命名为水果(以及“苹果”已被采取:)),或着名的船等,但不知何故,这些名字似乎并不适合。 那么对于那些创业的人,我想问问你是怎么想出名字的,如果有人对此有什么build议?

绘制path和硬件加速

在我看来,我正在绘制一条相当大的路,而且我遇到了一些性能问题。 目前的path是32000点,但我的应用程序应该扩展到至less128000点。 对于path的大小,我无法做任何事情,因为数据集非常大,我需要能够一次显示整个path并允许放大。 我使用的是运行Android 4.2的Nexus 10,默认情况下硬件加速function是针对未明确禁用的应用程序启用的。 path是用下面的代码创build的(我省略了一些设置和其他不相关的部分): dataPath.moveTo(0, offset – (float) data[leftLimit]/ scalingFactor); for (int i = leftLimit; i < rightLimit; ++i) { x = (i – leftLimit) * dx; y = offset – (float) data[i]/ scalingFactor; dataPath.lineTo(x, y); } 然后在onDraw()方法中绘制: canvas.drawColor(Color.WHITE); canvas.drawPath(dataPath, linePaint); 我测量了使用adb shell dumpsys gfxinfo来绘制我的视图所花费的时间,而且没有硬件加速,我惊讶地发现硬件加速比较慢: 随着硬件加速: 没有硬件加速: 硬件加速版本每帧需要大约200-300毫秒,大部分花费在处理阶段。 非加速版本大约需要50 ms,Draw阶段为2/3,处理阶段为1/3。 显然,即使我没有硬件加速的更快的版本仍然太慢,达不到60fps,或者当我移动到更大的数据集时甚至几乎无法使用。 将path渲染为位图,然后仅将该位图转换为适合屏幕的想法在我的情况下也是有问题的。 […]

你如何从一条线的某个垂直距离find一个点?

我在窗口中绘制一条线,并让用户拖动它。 所以,我的线由两个点定义:(x1,y1)和(x2,y2)。 但现在我想在我的线的末端画“帽子”,就是说,在我的每一个端点上都有短垂线。 帽应该是N个像素的长度。 因此,为了在终点(x1,y1)绘制我的“帽”线,我需要find两个点形成一个垂直线,并且每个点都离开点(x1,y1)N / 2个像素。 那么,如果你需要在一个已知线的终点(x1,y1)的一个垂直距离N / 2处(即由(x1,y1)和(x2,y2)?

文本与graphics编程语言

我是高中机器人队伍的一员,对于使用哪种语言来编程我们的机器人有一些争议。 我们selectC(或者C ++)和LabVIEW。 每种语言都有优点。 C(++): 广泛使用 为未来做好准备(大多数编程职位需要基于文本的程序员。) 我们可以从去年的C代码库扩展 让我们更好地了解我们的机器人在做什么。 LabVIEW的 更容易可视化程序stream程(块和连线,而不是代码行) 更容易教(据说…) “编程的未来是graphics化的。” (也这样觉得?) 接近一些新成员可能拥有的Robolab背景。 不需要亲密地知道发生了什么事情。 只要告诉模块find红球,不需要知道如何。 对我们来说这是一个非常艰难的决定,我们一直在辩论。 基于每种语言的专业知识,以及您获得的经验, 您认为更好的select是什么? 请记住,我们不一定要纯粹的效率。 我们也希望为编程人员的未来做好准备。 也: 你认为像LabVEIW这样的graphics语言是编程的未来吗? graphics语言比文本语言更容易学习吗? 我认为他们应该同样具有挑战性的学习。 看到我们在帮助人们学习的基础上, 我们应该依赖多less预先编写的模块,以及我们应该自己写多less? (“好的程序员编写好的代码,伟大的程序员复制伟大的代码”。但是,首先,这不是一个好的程序员吗?) 感谢您的build议! 编辑:我想更多地强调这个问题:队长认为LabVIEW更容易学习和教学。 真的吗? 我认为,C可以很容易地教,而初学者的任务仍然会与C一起。我真的很想听听你的意见。 有没有什么理由打字,而{}应该比创build一个“边框”更困难? 难道直观的是,程序一行一行地stream水,只能通过ifs和循环来修改,因为直观的是程序stream经线路,只能通过ifs和loop来修改! 再次感谢! 编辑:我刚刚意识到,这属于“语言辩论”的主题。 我希望没关系,因为这对某个特定的编程分支来说是最好的。 如果不是…对不起…

哪个格式的小网站图片? GIF或PNG?

当为网站做小图标,标题graphics等时,使用GIF或PNG会更好吗? 显然,如果需要透明效果,那么PNG肯定是要走的路,而对于更大,更多的照片图像,我会使用JPEG – 但是对于正常的networking“家具”,你会推荐,为什么? 这可能只是我正在使用的工具,但GIF文件通常看起来比可比的PNG小一些,但是使用它们看起来好像是在1987年。

Graphics.DrawString()的中心文本输出

我正在使用.NETCF(Windows Mobile) Graphics类和DrawString()方法来呈现单个字符的屏幕。 问题是,我似乎无法正确地居中。 无论我为string渲染的位置的Y坐标设置什么,它总是低于此值,文本大小越大,Y偏移量越大。 例如,在文本大小为12时,偏移大约是4,但是在32处偏移大约是10。 我希望angular色垂直占据大部分正在绘制的矩形,并水平居中。 这是我的基本代码。 this是引用它被绘制的用户控件。 Graphics g = this.CreateGraphics(); float padx = ((float)this.Size.Width) * (0.05F); float pady = ((float)this.Size.Height) * (0.05F); float width = ((float)this.Size.Width) – 2 * padx; float height = ((float)this.Size.Height) – 2 * pady; float emSize = height; g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular), new SolidBrush(Color.Black), padx, pady); 是的,我知道有我可以使用的标签控件,并将其设置为居中,但实际上我需要使用Graphics类手动执行此操作。

我如何在C中进行GUI编程?

我想用C编写graphics编程。我search了很多关于编译器的知识,这些编译器提供了一套丰富的用C编写GUI编程的函数,但是我找不到任何东西。 基本上我想绘制button,然后接受来自用户的select,并采取适当的行动。 如果你能build议一个C编译器或者一个我可以添加到我的编译器中的库,那将是有帮助的。 我正在使用Windows操作系统。 目前,我正在使用不支持直接创buildbutton的TURBO C编译器。 任何帮助,将不胜感激。

有没有Android Drawabledevise师?

我想在我的Android应用程序中使用更多的vector绘图。 提供图像并不像我希望的那样具有空间效率或可扩展性。 Android提供了一系列可绘制的文件格式 ,如ShapeDrawable ,可以在LayeredDrawable进行组合。 要走这条路很远,如果有一个devise师可以看到结果,进行绘图并处理所有的结果文件,那就太好了。 C#WPF有Expression Blend ,Adobe有Flash CS4,iPhone有Opacity 。 所以我的问题是,有没有Android的devise师或绘图工具? 注意:其他问题已经谈到在Android中使用SVG。 Android不支持SVG,所以唯一的方法就是使用外部库。 我想避免这一点,并要求一个开发人员的工具。 SVG到Drawable转换器会很好,但我不知道一个。

最好的3D Java引擎

寻找一个易于使用的3D Java引擎API(即不包装),有一个良好的社区和良好的发展。 额外的function(即audio,input等)不是必要的,但很好。 我发现最stream行的Java 3DgraphicsAPI列表: 包装/低层次 JOGL – 强大的社区/良好的支持/积极 Java3D – 被遗弃(或慢慢死亡),逐步退出场景图(或重新加工到JavaFX?) lwjgl – 打开GL包装,audio和input处理/活动 引擎 jMonkey引擎 – 维基百科 – 活跃 版本3.0和2.0之间的分支(可能会伤害社区) ogre4j – 维基百科 – 自由的 百科全书 父项目OGRE – Active – C ++ Bindenlicht – 没有维基百科! – 不活跃 父项目Irrlicht – 维基百科 – Active – C ++ 高级(不适用于游戏) 处理 – 似乎不适用于游戏,但用于graphics可视化和演示 Jzy3d – 一个易于使用的Java API的3D图表(表面,散点图,条形图等)。 […]