【问题标题】:Image cropping C# without .net library没有 .net 库的图像裁剪 C#
【发布时间】:2010-09-07 09:55:53
【问题描述】:

任何人都可以建议如何裁剪图像,比如说 jpeg,而不使用任何 .NET 框架结构,只使用原始字节?因为这是 Silverlight 中唯一的*方式...

或者指向一个库?

我不关心渲染,我想在上传之前操作 jpg。

*Silverlight 中没有可用的 GDI+(System.Drawing) 或 WPF(System.Windows.Media.Imaging) 库。

Lockbits 需要 GDI+,澄清问题

使用 fjcore:http://code.google.com/p/fjcore/ 调整大小但无法裁剪:(

【问题讨论】:

    标签: c# silverlight image-manipulation


    【解决方案1】:

    ImageMagick 做得很好。如果您可以将编辑任务交给您的服务器...

    (说真的?在 Silverlight 中处理图像的推荐方法是使用 原始字节?那是……令人难以置信的蹩脚。)

    【讨论】:

      【解决方案2】:

      silverlight 在哪里执行? 是否有任何理由向客户发送完整的图片以使客户对其进行裁剪? 在服务器上做......(如果你没有创建一个图像编辑器......)

      【讨论】:

        【解决方案3】:

        我正在看:http://code.google.com/p/fjcore/source/checkout 一个无依赖的图像处理库。

        【讨论】:

          【解决方案4】:

          您可以在 fjcore 中轻松编写自己的裁剪。从 Resizer 的代码开始

          http://web.archive.org/web/20140304090029/http://code.google.com:80/p/fjcore/source/browse/trunk/FJCore/Resize/ImageResizer.cs?

          和 FilterNNResize -- 您可以看到图像数据是如何存储的 -- 它只是简单的像素数组。

          重要的部分是:

          for (int y = 0; y < _newHeight; y++)
          {
              i_sY = (int)sY; sX = 0;
          
              UpdateProgress((double)y / _newHeight);
          
              for (int x = 0; x < _newWidth; x++)
              {
                  i_sX = (int)sX;
          
                  _destinationData[0][x, y] = _sourceData[0][i_sX, i_sY];
          
                  if (_color) {
          
                      _destinationData[1][x, y] = _sourceData[1][i_sX, i_sY];
                      _destinationData[2][x, y] = _sourceData[2][i_sX, i_sY];
                  }
          
                  sX += xStep;
              }
              sY += yStep;
          }
          

          显示数据存储在一个颜色平面数组中(1 个元素用于 8bpp 灰度,3 个元素用于颜色),每个元素都有一个用于图像的二维字节数组 (x, y)。

          您只需要遍历目标像素,然后从源中的适当位置复制。

          编辑:别忘了把补丁提供给fjcore的作者

          【讨论】:

            猜你喜欢
            • 2016-04-01
            • 1970-01-01
            • 2016-11-28
            • 1970-01-01
            • 2011-04-23
            • 2017-08-04
            • 2017-05-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多