标签: vector-graphics

带有C#绑定的Windows矢量图形库

为了好玩,我想看看我是否可以创建一个有点像WPF的小子集的库:一个托管模板驱动的基于矢量的图形系统.(我有一些理论我想测试.)然而,我不是一个图形天才,我正在寻找一个好的矢量图形库.

我知道微软在内部使用MilCore,它或多或少似乎将一系列矢量结构从托管世界传递到非托管世界并呈现它们.我相信这个底层库是基于立即模式的.我想使用现有的免费矢量图形库以及所需功能的清单:

  1. 基于矢量
  2. 立即或保留模式,最好立即?
  3. 像素着色器支持
  4. 几何命中测试会很好
  5. 图像支持,图像旋转支持
  6. .NET绑定
  7. 稳定到小规模商业上可行的程度

我不需要的东西:

  1. 跨平台支持.如果将其锁定到DirectX甚至Direct3D 10或11中,那就这样吧.
  2. 更高级别的图形管理,类似于"控制".这层管理我可能想自己做.
  3. 我不怕有点互操作.
  4. 超级棒的表现力.我希望这是高效的,但如果可用性因此而受到太大影响,我就不会成功.

这个库http://jeremiahmorrill.com/2011/02/05/a-simple-directcanvas-tutorial/看起来与我想要的类似,但最好更稳定,有更多例子.
如果可能的话,我更喜欢DX/OpenGL以上的一层.

我有什么选择?这是存在还是只是一个白日梦?提前谢谢 - 我觉得我刚刚输入购物清单,但我真的很感谢社区对此的反馈.它似乎不适合我在这里列出的其他矢量图形问题,但如果我错过了一个很棒的帖子,请告诉我!

.net c# graphics vector-graphics

12
推荐指数
1
解决办法
9805
查看次数

在WPF应用程序中以编程方式从XAML文件加载矢量图形

我想加载存储为XAML文件的矢量图形(单独的文件,不在字典中),嵌入我的应用程序中,我有几个问题要做:

  1. XAML看起来有点模棱两可,因为它可以用来表示像矢量图像这样的静态资源,或者像WPF中那样动态构建的接口.因此,我不清楚XAML矢量图像的格式:根元素应该是什么,比如svg矢量图像的"svg"标签?目前,我使用Canvas作为顶级元素,因为我想在另一个Canvas中绘制我的图形.

  2. 以编程方式加载这些文件的最佳方法是什么(我的意思是,从xaml文件创建Canvas)?我已经看过(并尝试过)使用XamlReader的不同解决方案,但没有任何效果:应用程序崩溃,调试器没有帮助(我遇到的大多数问题似乎在解析期间发生,并且错误消息不清楚).

我已经阅读http://learnwpf.com/post/2006/06/04/How-do-I-Include-Vector-Based-Image-Resources-in-my-WPF-Application.aspx,但链接到处理资源文件加载的文章已经死亡,图像不是使用C#代码创建的.

c# wpf xaml vector-graphics xamlreader

12
推荐指数
1
解决办法
4692
查看次数

什么库可用于将位图转换为矢量?

我当前的项目与位图到矢量有关.到目前为止我找到了这些库:

potrace

  • (+)非常适合线跟踪
  • (+)文件
  • ( - )不支持图像渐变

ardeco

  • (+)支持olor渐变
  • (+)文件
  • ( - )线追踪与potrace相比较差
  • ( - )过时(2006年)

rastertovector

  • (+)支持颜色渐变
  • ( - )小文档
  • ( - )线追踪与potrace相比较差
  • ( - )有点过时(2008)

该项目将用于矢量化卡通形象(漫画或卡通,特别是).我的主要目标是矢量化黑白图像.所以potrace给了我足够的结果,但我想处理渐变,例如,逐渐从黑色到白色.

到目前为止,很难找到支持颜色渐变的库.Ardeco和rastertovector支持颜色渐变,但它们有点过时了.我想知道是否有任何维护良好(当然,文档齐全)的矢量追踪库

谢谢!

c++ graphics image-processing vector-graphics bitmapimage

12
推荐指数
1
解决办法
7327
查看次数

使用Python Gizeh构建动画

我能够创建一个包含形状和数字的简单图表.我使用以下代码:

import gizeh as gz

W, H = 500, 300

surface = gz.Surface(W,H, bg_color=(1,0.7,1))

for a in range(1,9):
    rect = gz.rectangle(lx = 10, ly = 10, xy=(W/a,H/a), fill =(0,1,0.7))
    rect.draw(surface)
    txt = gz.text(str(a), fontfamily="Dancing Script", fontsize=15, fill=(0,0,0),xy=(W/a,H/a))
    txt.draw(surface)

surface.ipython_display()
Run Code Online (Sandbox Code Playgroud)

我还使用moviepy创建了一个版本:

import numpy as np
import gizeh as gz
import moviepy.editor as mpy

W, H = 500, 300
duration = 5
figpath = '/tmp/'
fps = 1

def make_frame(t):

    surface = gz.Surface(W,H, bg_color=(1,1,1))

    rect = gz.rectangle(lx = 10, ly = 10, …
Run Code Online (Sandbox Code Playgroud)

python animation vector-graphics

12
推荐指数
1
解决办法
1298
查看次数

WPF是我申请缓慢的原因吗?

我正在使用WPF开发一个应用程序.该应用程序全屏运行,无论显示器分辨率如何,我都需要它才能很好地调整大小.图形设计师为UI按钮,背景等设计了精美的图像.使用Illustrator插件,所有图像都已转换为xaml文件.我已将所有这些图像添加到应用程序中,它们看起来很棒.我也使用了很多Grid布局,以便屏幕可以在保持布局的同时调整大小.所有这些都根据需要显示,当以不同的分辨率运行时,没有任何东西看起来拉伸.但是,屏幕转换和UI交互很慢.

我想知道,这是由于图形的大量使用?我使用了太多的Grid布局吗?但是,我需要Grids以便我可以拥有分辨率独立性.

该应用程序在我的开发机器上运行良好,但在具有较低性能的机器上运行速度非常慢.是的,这是可以预料的,但不是我所看到的程度.我的雇主坚持认为应用程序在这些性能较低的机器上运行顺畅.

我已经对应用程序进行了一些分析,看起来需要花费最多时间的是显示内容(尽管我不确定我是否完全理解如何有效地使用分析器).

如果WPF导致速度减慢,我该怎么做才能改善这一点?

c# wpf performance vector-graphics

11
推荐指数
2
解决办法
1万
查看次数

比较两个矢量图像

我想比较两个矢量图像(比如SVG),看看它们有多接近.基本上,我想测试跟踪算法的正确性,该算法将光栅图像转换为矢量格式.

我想测试这个算法的方式是:

- 拍一些矢量图像.

- 将矢量图像光栅化为png.

- 将上述png转换为跟踪算法.

- 将跟踪程序(SVG)的输出与原始程序进行比较.

虽然我知道像RMSE(在imagemagick中)有一些光栅图像的矩阵,但如果有一些标准的矢量格式矩阵,我不熟悉.我可以想到一些简单的例如弧数,线,曲线等.但是这些不能检测几何和颜色的偏差.有人可以建议一个良好的标准指标或其他方法来解决这个问题.

svg image vector-graphics

11
推荐指数
1
解决办法
4939
查看次数

如何在D维球体的表面上绘制大致等距的N点?

假设我有一个带有中心的D维球体,[C1,C2,C3,C4,...... CD]和半径R.现在我想绘制均匀分布的N个点(彼此等距离)在球体的表面上.这些点究竟在哪里并不重要,只是它们彼此之间的距离相等.我想要一个返回这些点数组的函数P.

function plotter(D, C[1...D], R, N)
{
   //code to generate the equidistant points on the sphere

   return P[1...N][1...D];
}
Run Code Online (Sandbox Code Playgroud)

有许多点的三维球体

具有几个点的三维球体

math 3d graphics trigonometry vector-graphics

11
推荐指数
2
解决办法
3643
查看次数

PIL和基于矢量的图形

当我尝试使用PIL打开EPS或SVG图像时,我遇到了几个问题.

打开EPS

from PIL import Image
test = Image.open('test.eps')
Run Code Online (Sandbox Code Playgroud)

结束于:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\Lib\site-packages\PIL\Image.py", line 1965, in open
    return factory(fp, filename)
  File "C:\Python27\Lib\site-packages\PIL\ImageFile.py", line 91, in __init__
    self._open()
  File "C:\Python27\Lib\site-packages\PIL\EpsImagePlugin.py", line 206, in _open
    raise IOError, "bad EPS header"
  IOError: bad EPS header
Run Code Online (Sandbox Code Playgroud)

打开SVG结束IOError: cannot identify image file.

问题是我必须在我的应用程序中支持这两种格式.转换为其他格式是别无选择.我使用的是Windows 7,Python 2.7.2和PIL 1.1.7.

我上传了两张图片:EPSSVG.

python svg vector-graphics eps python-imaging-library

11
推荐指数
3
解决办法
2万
查看次数

generatedDensities已弃用

从不同配置的矢量绘制生成png图像(API低于21)...我正在使用AndroidStudio2.0 preview5gradle:2.0.0-alpha5 ...

在build.gradle-

defaultConfig {
   ...
    //generate drawables from vectors
    generatedDensities = ['hdpi','xxhdpi']
}
Run Code Online (Sandbox Code Playgroud)

generatedDensities显示为IDE 已弃用.

实施它的新方法是什么?

android vector-graphics gradle android-studio

11
推荐指数
1
解决办法
2021
查看次数

为什么在 SwiftUI 中调整 PDF 的大小会变得锐利?

我尝试使用 Xcode 11.4 和 iOS 13.4 在支持 SwiftUI 的应用程序中包含 pdf。但是,当我调整 pdf 大小时,它的边缘会变得粗糙。我已经包含了 pdf 的两个版本:一个大 pdf ( icon.pdf) 和一个小 pdf ( icon_small.pdf)。当我调整大小时,icon.pdf它会开始边缘,而icon_small.pdf边缘会变得平滑。该问题也适用于我尝试过的所有其他 pdf。

在此处输入图片说明

这是我的代码:

struct ContentView: View {
    var body: some View {
        VStack {
            Spacer()
            Text("icon.pdf:")
            Image("icon")
                .resizable()
                .renderingMode(.template)
                .aspectRatio(contentMode: .fit)
                .frame(width: 27.0, height: 27.0)
            Spacer()
            Text("icon_small.pdf:")
            Image("icon_small")
            Spacer()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

双方icon.pdficon_small.pdf具有下列资产设置:

  • 渲染为:模板图像
  • 调整大小:保留矢量数据
  • 设备:通用
  • 秤:单秤

pdf 可在此处获得:

pdf vector-graphics image-resizing swiftui

11
推荐指数
1
解决办法
2334
查看次数