Image 在使用sql查询中将图像大小从150*150更改为70*70?
我将图像存储在SQL server 2008 R2数据库中的varBinarymax列中,该列名为:image1,大小为150*150。我添加了另一个名为image2 varBinarymax的列,我需要使用image1中相同的图像更新此列,但大小为70*70。是否可以使用sql查询执行此操作Image 在使用sql查询中将图像大小从150*150更改为70*70?,image,sql-server-2008,Image,Sql Server 2008,我将图像存储在SQL server 2008 R2数据库中的varBinarymax列中,该列名为:image1,大小为150*150。我添加了另一个名为image2 varBinarymax的列,我需要使用image1中相同的图像更新此列,但大小为70*70。是否可以使用sql查询执行此操作 我试图找到查询,但没有得到任何线索如何做到这一点。请告诉我以前是否有人这样做过,以及如何做?正如一些评论中所说,SQL是一种数据存储系统,无法编辑您的图像 我建议您使用首选语言c等对表执行一次性更新,在将
我试图找到查询,但没有得到任何线索如何做到这一点。请告诉我以前是否有人这样做过,以及如何做?正如一些评论中所说,SQL是一种数据存储系统,无法编辑您的图像 我建议您使用首选语言c等对表执行一次性更新,在将其更新回表中之前获取每个图像并调整其大小
然后从那时起,确保插入表中的任何图像在插入之前都已调整大小。我同意这里每个人的观点,但如果您确实想或不得不这样做,可以在SQL Server上启用CLR集成,创建一个可以调整图像大小的程序集,然后从触发器或进程调用它。这并不难。下面是一个描述流程的页面: 基本上要在SQL Server上启用CLR,请执行以下操作:
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
CREATE ASSEMBLY ResizeImageAssembly from 'c:\ResizeImageProc.dll' WITH PERMISSION_SET = SAFE
创建c程序集以调整图像大小:
using System;
using System.Data;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
public class ResizeImageProc
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void ResizeImage(int ImageID, int width, int height)
{
//TODO: ResizeImage Code
}
}
编译程序集
csc /target:library ResizeImageProc.cs
在SQL Server中加载程序集:
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
CREATE ASSEMBLY ResizeImageAssembly from 'c:\ResizeImageProc.dll' WITH PERMISSION_SET = SAFE
创建进程
CREATE PROCEDURE ResizeImage AS EXTERNAL NAME ResizeImageAssembly.ResizeImageProc.ResizeImage
在此之后,您可以像调用正常进程一样调用它。例如:
EXEC ResizeImage(1,800,600)
SQL Server是用于存储和检索数据的数据库,而不是图像处理器。。。你不能指望T-SQL能够完成像图像大小调整这样的各种操作——这是用C或类似语言编写的应用程序的工作。是的,目前我正在使用C,但我正在尝试找到一种更快的方法。所以只需要知道SQLNo中是否有任何解决方法-SQL是关于存储和检索数据的-而不是关于图像处理,对不起。为什么不边走边调整图像大小-正如marc所说,在tsql中是不可能的,但是我想不出存储缩略图的原因,或者让我们来看看MARCARS化身——链接相当大,但是你可以注意到S=32个参数——图片的大小。您可以对您的解决方案使用相同的方法。实际上,我正在尝试在具有缩略图的listview上显示数据,如果相同的数据多次出现,那么每次我需要重新调整图像大小时,这对我在azure上的网站来说都是一个昂贵的过程。我同意这是最好的方法,使用.NET语言将使您能够相当轻松地完成这项工作。请看一下System.Drawing。