コード例 #1
0
    protected void Button_Opret_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;

        cmd.CommandText = @"INSERT INTO Users (user_email, user_name, user_password, user_picture) VALUES (@email, @name, @password, @picture)";
        cmd.Parameters.AddWithValue("@email", TextBox_Email.Text);
        cmd.Parameters.AddWithValue("@name", TextBox_Name.Text);
        cmd.Parameters.AddWithValue("@password", TextBox_Password.Text);

        #region image1
        string bill_sti = "intetbillede.jpg";
        if (FileUpload_ProfilePicture.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            bill_sti = Guid.NewGuid() + Path.GetExtension(FileUpload_ProfilePicture.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/Original/");
            String CroppedMappe = Server.MapPath("~/images/Resized/");
            String Filnavn = DateTime.Now.ToFileTime() + FileUpload_ProfilePicture.FileName;
            bill_sti = Filnavn;

            //Gem det orginale Billede
            FileUpload_ProfilePicture.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width = 50;
            BilledeSkalering.Height = 50;
            BilledeSkalering.Mode = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);

        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@picture", bill_sti);
        #endregion

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

        Response.Redirect("Login.aspx");
    }
コード例 #2
0
        public static void Run([BlobTrigger("image/{name}", Connection = "ImageStorageAccountConnection")] Stream imageBlob,
                               string name,
                               [Blob("thumbnail/{name}", FileAccess.Write)] Stream imagethumbnail,
                               TraceWriter log)
        {
            log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {imageBlob.Length} Bytes");

            if (imageBlob.Length >= 4000000)
            {
                //for large image, create thumbnail using ImageResizer
                var imageResizersettings = new ImageResizer.ResizeSettings
                {
                    MaxHeight = 320,
                    MaxWidth  = 320
                };

                ImageResizer.ImageBuilder.Current.Build(imageBlob, imagethumbnail, imageResizersettings);
            }
            else
            {
                // for small image, using cognative service to create thumbnail

                int  width         = 320;
                int  height        = 320;
                bool smartCropping = true;

                using (var httpClient = new HttpClient())
                {
                    httpClient.BaseAddress = new Uri(_apiUrlBase);
                    httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", _apiKey);
                    using (HttpContent content = new StreamContent(imageBlob))
                    {
                        //get response
                        content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/octet-stream");
                        var uri           = $"{_apiUrlBase}?width={width}&height={height}&smartCropping={smartCropping.ToString()}";
                        var response      = httpClient.PostAsync(uri, content).Result;
                        var responseBytes = response.Content.ReadAsByteArrayAsync().Result;

                        //write to output thumb
                        imagethumbnail.Write(responseBytes, 0, responseBytes.Length);
                    }
                }
            }
        }
コード例 #3
0
ファイル: ImageJob.cs プロジェクト: zhaoyingju/resizer
 public ImageJob(string sourcePath, string destPath, ResizeSettings settings)
     : this((object)sourcePath, (object)destPath, new Instructions(settings))
 {
 }
コード例 #4
0
ファイル: InterceptModule.cs プロジェクト: timgaunt/resizer
        /// <summary>
        /// Generates the resized image to disk (if needed), then rewrites the request to that location.
        /// Perform 404 checking before calling this method. Assumes file exists.
        /// Called during PostAuthorizeRequest
        /// </summary>
        /// <param name="context"></param>
        /// <param name="ra"></param>
        /// <param name="vf"></param>
        protected virtual void HandleRequest(HttpContext context, HttpModuleRequestAssistant ra, IVirtualFile vf)
        {
            if (!ra.CachingIndicated && !ra.ProcessingIndicated)
            {
                ra.ApplyRewrittenPath(); //This is needed for both physical and virtual files; only makes changes if needed.
                if (vf != null)
                {
                    ra.AssignSFH(); //Virtual files are not served in .NET 4.
                }
                return;
            }

            context.Items[conf.ResponseArgsKey] = ""; //We are handling the request

            //Communicate to the MVC plugin this request should not be affected by the UrlRoutingModule.
            context.Items[conf.StopRoutingKey] = true;


            ra.EstimateResponseInfo();

            //Build CacheEventArgs
            ResponseArgs e = new ResponseArgs();

            //Add the modified date to the request key, if present.
            var modDate = (vf == null) ? System.IO.File.GetLastWriteTimeUtc(ra.RewrittenMappedPath) :
                          (vf is IVirtualFileWithModifiedDate ? ((IVirtualFileWithModifiedDate)vf).ModifiedDateUTC : DateTime.MinValue);

            e.RequestKey = ra.GenerateRequestCachingKey(modDate);


            var settings = new ResizeSettings(ra.RewrittenInstructions);

            e.RewrittenQuerystring        = settings;
            e.ResponseHeaders.ContentType = ra.EstimatedContentType;
            e.SuggestedExtension          = ra.EstimatedFileExtension;


            //A delegate for accessing the source file
            e.GetSourceImage = new GetSourceImageDelegate(delegate() {
                return((vf != null) ? vf.Open() : File.Open(ra.RewrittenMappedPath, FileMode.Open, FileAccess.Read, FileShare.Read));
            });

            //Add delegate for writing the data stream
            e.ResizeImageToStream = new ResizeImageDelegate(delegate(System.IO.Stream stream) {
                //This runs on a cache miss or cache invalid. This delegate is preventing from running in more
                //than one thread at a time for the specified cache key
                try {
                    if (!ra.ProcessingIndicated)
                    {
                        //Just duplicate the data
                        using (Stream source = e.GetSourceImage())
                            source.CopyToStream(stream); //4KiB buffer
                    }
                    else
                    {
                        ImageJob j;
                        //Process the image
                        if (vf != null)
                        {
                            j = new ImageJob(vf, stream, settings);
                        }
                        else
                        {
                            j = new ImageJob(ra.RewrittenMappedPath, stream, settings); //Use a physical path to bypass virtual file system
                        }
                        conf.GetImageBuilder().Build(j);
                    }
                    ra.FireJobSuccess();
                    //Catch not found exceptions
                } catch (System.IO.FileNotFoundException notFound) {
                    if (notFound.Message.Contains(" assembly "))
                    {
                        throw;                                          //If an assembly is missing, it should be a 500, not a 404
                    }
                    //This will be called later, if at all.
                    ra.FireMissing();
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                } catch (System.IO.DirectoryNotFoundException notFound) {
                    ra.FireMissing();
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                } catch (Exception ex)
                {
                    ra.FireJobException(ex);
                    throw;
                }
            });


            context.Items[conf.ResponseArgsKey] = e; //store in context items

            //Fire events (for client-side caching plugins)
            conf.FirePreHandleImage(this, context, e);

            //Pass the rest of the work off to the caching module. It will handle rewriting/redirecting and everything.
            //We handle request headers based on what is found in context.Items
            ICache cache = conf.GetCacheProvider().GetCachingSystem(context, e);

            //Verify we have a caching system
            if (cache == null)
            {
                throw new ImageProcessingException("Image Resizer: No caching plugin was found for the request");
            }

            cache.Process(context, e); //TODO: Verify that caching systems serves request or transfers to StaticFileHandler
        }
コード例 #5
0
        /// <summary>
        /// Generates the resized image to disk (if needed), then rewrites the request to that location.
        /// Perform 404 checking before calling this method. Assumes file exists.
        /// Called during PostAuthorizeRequest
        /// </summary>
        /// <param name="context"></param>
        /// <param name="virtualPath"></param>
        /// <param name="queryString"></param>
        /// <param name="vf"></param>
        protected virtual void HandleRequest(HttpContext context, string virtualPath, NameValueCollection queryString, IVirtualFile vf)
        {
            Stopwatch s = new Stopwatch();

            s.Start();


            ResizeSettings settings = new ResizeSettings(queryString);

            bool isCaching    = settings.Cache == ServerCacheMode.Always;
            bool isProcessing = settings.Process == ProcessWhen.Always;

            //By default, we process it if is both (a) a recognized image extension, and (b) has a resizing directive (not just 'cache').
            if (settings.Process == ProcessWhen.Default)
            {
                //Check for resize directive by removing ('non-resizing' items from the current querystring)
                NameValueCollection copy = new NameValueCollection(queryString);
                copy.Remove("cache"); copy.Remove("process"); copy.Remove("useresizingpipeline"); copy.Remove("404");
                copy.Remove("404.filterMode"); copy.Remove("404.except");
                //If the 'copy' still has directives, and it's an image request, then let's process it.
                isProcessing = conf.IsAcceptedImageType(virtualPath) && conf.HasPipelineDirective(copy);
            }

            //By default, we only cache it if we're processing it.
            if (settings.Cache == ServerCacheMode.Default && isProcessing)
            {
                isCaching = true;
            }

            //Resolve the 'cache' setting to 'no' unless we want it cache.
            if (!isCaching)
            {
                settings.Cache = ServerCacheMode.No;
            }


            //If we are neither processing nor caching, don't do anything more with the request
            if (!isProcessing && !isCaching)
            {
                return;
            }
            context.Items[conf.ResponseArgsKey] = ""; //We are handling the requests

            //Communicate to the MVC plugin this request should not be affected by the UrlRoutingModule.
            context.Items[conf.StopRoutingKey] = true;

            //Find out if we have a modified date that we can work with
            bool     hasModifiedDate = (vf == null) || vf is IVirtualFileWithModifiedDate;
            DateTime modDate         = DateTime.MinValue;

            if (hasModifiedDate && vf != null)
            {
                modDate = ((IVirtualFileWithModifiedDate)vf).ModifiedDateUTC;
                if (modDate == DateTime.MinValue || modDate == DateTime.MaxValue)
                {
                    hasModifiedDate = false; //Skip modified date checking if the file has no modified date
                }
            }


            IEncoder guessedEncoder = null;

            //Only use an encoder to determine extension/mime-type when it's an image extension or when we've set process = always.
            if (isProcessing)
            {
                guessedEncoder = conf.GetImageBuilder().EncoderProvider.GetEncoder(settings, virtualPath);
                if (guessedEncoder == null)
                {
                    throw new ImageProcessingException("Image Resizer: No image encoder was found for the request.");
                }
            }

            //Determine the file extenson for the caching system to use if we aren't processing the image
            //Use the exsiting one if is an image extension. If not, use "unknown".
            // We don't want to suggest writing .exe or .aspx files to the cache!
            string fallbackExtension = PathUtils.GetFullExtension(virtualPath).TrimStart('.');

            if (!conf.IsAcceptedImageType(virtualPath))
            {
                fallbackExtension = "unknown";
            }

            //Determine the mime-type if we aren't processing the image.
            string fallbackContentType = "application/octet-stream";

            //Support jpeg, png, gif, bmp, tiff mime-types. Otherwise use "application/octet-stream".
            //We can't set it to null - it will default to text/html
            System.Drawing.Imaging.ImageFormat recognizedExtension = DefaultEncoder.GetImageFormatFromExtension(fallbackExtension);
            if (recognizedExtension != null)
            {
                fallbackContentType = DefaultEncoder.GetContentTypeFromImageFormat(recognizedExtension);
            }


            //Build CacheEventArgs
            ResponseArgs e = new ResponseArgs();

            e.RequestKey                  = virtualPath + PathUtils.BuildQueryString(queryString);
            e.RewrittenQuerystring        = settings;
            e.ResponseHeaders.ContentType = isProcessing ? guessedEncoder.MimeType : fallbackContentType;
            e.SuggestedExtension          = isProcessing ? guessedEncoder.Extension : fallbackExtension;
            e.HasModifiedDate             = hasModifiedDate;
            //Add delegate for retrieving the modified date of the source file.
            e.GetModifiedDateUTC = new ModifiedDateDelegate(delegate() {
                if (vf == null)
                {
                    return(System.IO.File.GetLastWriteTimeUtc(HostingEnvironment.MapPath(virtualPath)));
                }
                else if (hasModifiedDate)
                {
                    return(modDate);
                }
                else
                {
                    return(DateTime.MinValue); //Won't be called, no modified date available.
                }
            });

            //A delegate for accessing the source file
            e.GetSourceImage = new GetSourceImageDelegate(delegate() {
                return((vf != null) ? vf.Open() : File.Open(HostingEnvironment.MapPath(virtualPath), FileMode.Open, FileAccess.Read, FileShare.Read));
            });

            //Add delegate for writing the data stream
            e.ResizeImageToStream = new ResizeImageDelegate(delegate(System.IO.Stream stream) {
                //This runs on a cache miss or cache invalid. This delegate is preventing from running in more
                //than one thread at a time for the specified cache key
                try {
                    if (!isProcessing)
                    {
                        //Just duplicate the data
                        using (Stream source = e.GetSourceImage())
                            StreamExtensions.CopyToStream(source, stream); //4KiB buffer
                    }
                    else
                    {
                        //Process the image
                        if (vf != null)
                        {
                            conf.GetImageBuilder().Build(vf, stream, settings);
                        }
                        else
                        {
                            conf.GetImageBuilder().Build(HostingEnvironment.MapPath(virtualPath), stream, settings); //Use a physical path to bypass virtual file system
                        }
                    }

                    //Catch not found exceptions
                } catch (System.IO.FileNotFoundException notFound) {
                    //This will be called later, if at all.
                    FileMissing(context, virtualPath, queryString);
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                } catch (System.IO.DirectoryNotFoundException notFound) {
                    FileMissing(context, virtualPath, queryString);
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                }
            });


            context.Items[conf.ResponseArgsKey] = e; //store in context items

            //Fire events (for client-side caching plugins)
            conf.FirePreHandleImage(this, context, e);

            //Pass the rest of the work off to the caching module. It will handle rewriting/redirecting and everything.
            //We handle request headers based on what is found in context.Items
            ICache cache = conf.GetCacheProvider().GetCachingSystem(context, e);

            //Verify we have a caching system
            if (cache == null)
            {
                throw new ImageProcessingException("Image Resizer: No caching plugin was found for the request");
            }

            cache.Process(context, e);



            s.Stop();
            context.Items["ResizingTime"] = s.ElapsedMilliseconds;
        }
コード例 #6
0
    protected void btn_opret_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand    cmd  = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = @"INSERT INTO users (userName, userDescription, userImg, userEmail, userPassword) 
                                        VALUES (@name, @descri, @img, @email, @pass)";

        cmd.Parameters.AddWithValue("@name", tb_OPname.Text);
        cmd.Parameters.AddWithValue("@descri", tb_OPbeskri.Text);
        cmd.Parameters.AddWithValue("@email", tb_OPemail.Text);
        cmd.Parameters.AddWithValue("@pass", tb_OPpass.Text);

        string img_path = "intetbillede.jpg";

        //Hvis der er en fil i FilUploaden

        if (fu_billede.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            img_path = Guid.NewGuid() + Path.GetExtension(fu_billede.FileName);
            // Opret



            String UploadeMappe = Server.MapPath("~/Images/Users/");

            //string Kategori = dd_type.SelectedItem.Text;
            String Lille = "Scaled";
            //String Stor = "Large";
            String Filnavn = DateTime.Now.ToFileTime() + fu_billede.FileName;
            img_path = Filnavn;

            //Gem det orginale Billede
            fu_billede.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width = 200;


            //Udfør skalleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Lille + "/" + Filnavn, BilledeSkalering);

            //Lav nogle nye skalerings instillinger
            BilledeSkalering       = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width = 65;


            //Udfør selve skaleringen
            //ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);
        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@img", img_path);



        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

        Response.Redirect("Login.aspx");
    }
コード例 #7
0
    protected void Button_Opret_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection();

        conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlCommand cmd = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = @"INSERT INTO Albums (Album_name, Album_price, Album_artist, Album_img, fk_genre_id, Album_postdate) VALUES (@name, @price, @artist, @img, @Genre_id, GETDATE());";
        cmd.Parameters.AddWithValue("@name", TextBox_Name.Text);
        cmd.Parameters.AddWithValue("@price", TextBox_Price.Text);
        cmd.Parameters.AddWithValue("@Artist", TextBox_Artist.Text);
        cmd.Parameters.AddWithValue("@Genre_id", DropDownList_Genres.SelectedValue);


        //database sti til billede
        string bill_sti = "intetbillede.jpg";

        //Hvis der er en fil i FilUploaden
        #region image1
        if (FileUpload_Img1.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            bill_sti = Guid.NewGuid() + Path.GetExtension(FileUpload_Img1.FileName);
            // Opret
            String UploadeMappe  = Server.MapPath("~/Images/Original/");
            String CroppedMappe1 = Server.MapPath("~/Images/200x200/");
            String CroppedMappe2 = Server.MapPath("~/Images/50x50/");
            String Filnavn       = DateTime.Now.ToFileTime() + FileUpload_Img1.FileName;
            bill_sti = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img1.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 200;
            BilledeSkalering.Height = 200;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe1 + Filnavn, BilledeSkalering);

            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 50;
            BilledeSkalering.Height = 50;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe2 + Filnavn, BilledeSkalering);
        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@img", bill_sti);
        #endregion

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

        Response.Redirect("AdminAlbums.aspx");
    }
コード例 #8
0
ファイル: ImageJob.cs プロジェクト: zhaoyingju/resizer
 public ImageJob(object source, object dest, ResizeSettings settings, bool disposeSource, bool addFileExtension)
     : this(source, dest, new Instructions(settings), disposeSource, addFileExtension)
 {
 }
コード例 #9
0
    protected void Button_Gem_Ret_Click(object sender, EventArgs e)
    {
        string        pris = TextBox_Price.Text;
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand    cmd  = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = @"UPDATE products SET product_name = @name, FK_category_id = @fk_category, product_price = @price, product_storage = @storage, product_min_storage = @min_storage, product_max_storage = @max_storage, product_recomended_dirt = @dirt, product_growthtime = @growthtime, product_image_1 = @image1, product_image_2 = @image2, product_image_3 = @image3, product_description = @description, product_number = @number WHERE product_id = @product_id";

        cmd.Parameters.AddWithValue("@product_id", ViewState["product_id"]);
        cmd.Parameters.AddWithValue("@name", TextBox_Name.Text);
        cmd.Parameters.AddWithValue("@number", TextBox_Productnumber.Text);
        cmd.Parameters.AddWithValue("@price", Convert.ToDecimal(pris));
        cmd.Parameters.AddWithValue("@storage", TextBox_Storage.Text);
        cmd.Parameters.AddWithValue("@min_storage", TextBox_Min_Storage.Text);
        cmd.Parameters.AddWithValue("@max_storage", TextBox_Max_Storage.Text);
        cmd.Parameters.AddWithValue("@dirt", TextBox_Dirt.Text);
        cmd.Parameters.AddWithValue("@growthtime", TextBox_Time.Text);
        cmd.Parameters.AddWithValue("@description", TextBox_Description.Text);
        cmd.Parameters.AddWithValue("@fk_category", DropDownList_Categorys.SelectedValue);


        #region Image 1
        string product_image1 = HiddenField_oldImage1.Value;
        if (FileUpload_Img1.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            product_image1 = Guid.NewGuid() + Path.GetExtension(FileUpload_Img1.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img1.FileName;
            product_image1 = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img1.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 120;
            BilledeSkalering.Height = 90;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);

            string old_img = HiddenField_oldImage1.Value;
            if (File.Exists(Server.MapPath("~/images/resizer/Croppede/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Croppede/") + old_img);
            }
            if (File.Exists(Server.MapPath("~/images/resizer/Original_Images/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Original_Images/") + old_img);
            }
        }
        cmd.Parameters.AddWithValue("@image1", product_image1);
        #endregion
        #region image 2
        string product_image2 = HiddenField_oldImage2.Value;
        if (FileUpload_Img2.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            product_image2 = Guid.NewGuid() + Path.GetExtension(FileUpload_Img2.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img2.FileName;
            product_image2 = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img2.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 120;
            BilledeSkalering.Height = 90;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);

            string old_img = HiddenField_oldImage2.Value;
            if (File.Exists(Server.MapPath("~/images/resizer/Croppede/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Croppede/") + old_img);
            }
            if (File.Exists(Server.MapPath("~/images/resizer/Original_Images/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Original_Images/") + old_img);
            }
        }
        cmd.Parameters.AddWithValue("@image2", product_image2);
        #endregion
        #region Image 3
        string product_image3 = HiddenField_oldImage3.Value;
        if (FileUpload_Img3.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            product_image3 = Guid.NewGuid() + Path.GetExtension(FileUpload_Img3.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img3.FileName;
            product_image3 = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img3.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 120;
            BilledeSkalering.Height = 90;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);

            string old_img = HiddenField_oldImage3.Value;
            if (File.Exists(Server.MapPath("~/images/resizer/Croppede/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Croppede/") + old_img);
            }
            if (File.Exists(Server.MapPath("~/images/resizer/Original_Images/") + old_img))
            {
                File.Delete(Server.MapPath("~/images/resizer/Original_Images/") + old_img);
            }
        }
        cmd.Parameters.AddWithValue("@image3", product_image3);
        #endregion
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        Response.Redirect("Produkter.aspx");
    }
コード例 #10
0
        public static Size CalculateNewSize(Image source, ResizeSettings settings)
        {
            Size newSize        = new Size();
            int  originalWidth  = source.Width;
            int  originalHeight = source.Height;

            float resizedImageScaleFactor = 0;
            int   bigSide = 0, smallSide = 0;

            switch (settings.ResizeMode)
            {
            case ResizeMode.MaxSides:

                settings.CompareSides(ref smallSide, ref bigSide);
                if (settings.StretchMode == StretchMode.Proportionally)
                {
                    resizedImageScaleFactor = GetScaleFactor(originalHeight, originalWidth, smallSide, bigSide);
                    ApplyResizeRule(originalHeight, originalWidth, resizedImageScaleFactor, settings.ScaleMode, ref newSize);
                }
                else
                {
                    if (originalHeight > originalWidth)
                    {
                        newSize.Height = bigSide;
                        newSize.Width  = smallSide;
                    }
                    else
                    {
                        newSize.Height = smallSide;
                        newSize.Width  = bigSide;
                    }
                }
                break;

            case ResizeMode.OneSide:

                if (settings.Height > 0 && settings.Width > 0)
                {
                    throw new Exception($"width: {settings.Width}, height: {settings.Height}. Только одна из сторон должна быть больше ноля");
                }

                if (settings.Height > 0)
                {
                    resizedImageScaleFactor = settings.Height / Convert.ToSingle(originalHeight);
                }
                else if (settings.Width > 0)
                {
                    resizedImageScaleFactor = settings.Width / Convert.ToSingle(originalWidth);
                }
                else
                {
                    throw new Exception($"width: { settings.Width }, height: { settings.Height}. Одна из сторон должна быть больше ноля");
                }

                newSize.Width  = Convert.ToInt32(originalWidth * resizedImageScaleFactor);
                newSize.Height = Convert.ToInt32(originalHeight * resizedImageScaleFactor);
                break;

            case ResizeMode.Rectangle:
                if (settings.StretchMode == StretchMode.Proportionally)
                {
                    if (originalHeight > originalWidth)
                    {
                        bigSide   = settings.Height;
                        smallSide = settings.Width;
                    }
                    else
                    {
                        bigSide   = settings.Width;
                        smallSide = settings.Height;
                    }
                    resizedImageScaleFactor = GetScaleFactor(originalHeight, originalWidth, smallSide, bigSide);
                    ApplyResizeRule(originalHeight, originalWidth, resizedImageScaleFactor, settings.ScaleMode, ref newSize);
                }
                else
                {
                    newSize.Height = settings.Height;
                    newSize.Width  = settings.Width;
                }
                break;

            default:
                break;
            }

            return(newSize);
        }
コード例 #11
0
ファイル: Profil.aspx.cs プロジェクト: Mort094/Final-Project
    private void gem()
    {
        if (tb_name.Text == "" || tb_email.Text == "" || tb_beskri.Text == "")
        {
            lbl_fejl2.Text = "Du skal udfylde alle felterne!";
        }
        else
        {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            SqlCommand    cmd  = new SqlCommand();

            cmd.Connection = conn;

            string img_path = hf_billede.Value;
            if (fu_billede.HasFile)
            {
                //NewGuid danner uniq navn for billeder
                img_path = Guid.NewGuid() + Path.GetExtension(fu_billede.FileName);
                // Opret



                String UploadeMappe = Server.MapPath("~/Images/Users/");

                //string Kategori = dd_type.SelectedItem.Text;
                String Lille = "Scaled";
                //String Stor = "Large";
                String Filnavn = DateTime.Now.ToFileTime() + fu_billede.FileName;
                img_path = Filnavn;

                //Gem det orginale Billede
                fu_billede.SaveAs(UploadeMappe + Filnavn);

                // Definer hvordan
                ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width = 200;


                //Udfør skalleringen
                ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Lille + "/" + Filnavn, BilledeSkalering);

                //Lav nogle nye skalerings instillinger
                BilledeSkalering       = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width = 65;

                // Tildel parameter-værdierne, fra input felterne.
                //cmd.Parameters.AddWithValue("@b_sti", user_img);
                //int x = Convert.ToInt32("@p_id");
                //cmd.Parameters.Add("@pk_film_id", SqlDbType.Int).Value = x;
                string old_img = hf_billede.Value;
                if (File.Exists(Server.MapPath("~/Images/Users/") + old_img))
                {
                    File.Delete(Server.MapPath("~/Images/Users/") + old_img);
                }
                if (File.Exists(Server.MapPath("~/Images/Users/Scaled/") + old_img))
                {
                    File.Delete(Server.MapPath("~/Images/Users/Scaled/") + old_img);
                }

                //if (File.Exists(Server.MapPath("~/billeder/plakater/large/") + old_img))
                //{
                //    File.Delete(Server.MapPath("~//billeder/plakater/large/") + old_img);
                //}
            }
            else
            {
                lbl_fejl.Text = "Du skal vælge et billede!";
            }

            cmd.CommandText = @" UPDATE users SET userName = @name, userDescription = @descri, userImg = @img, userEmail = @email
                                            WHERE userId = @userId";


            cmd.Parameters.AddWithValue("@userid", Session["userId"]);
            cmd.Parameters.AddWithValue("@name", tb_name.Text);
            cmd.Parameters.AddWithValue("@descri", tb_beskri.Text);
            cmd.Parameters.AddWithValue("@email", tb_email.Text);
            cmd.Parameters.AddWithValue("@img", img_path);

            if (tb_pass.Text != "")
            {
                cmd.CommandText = @"UPDATE users
                                            SET userName = @name, userDescription = @descri, userImg = @img, userEmail = @email, userPassword = @password
                                            WHERE userId = @userId";
                cmd.Parameters.AddWithValue("@password", tb_pass.Text);
            }



            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            Response.Redirect(Request.RawUrl);
        }
    }
コード例 #12
0
ファイル: Albums.aspx.cs プロジェクト: Mort094/Final-Project
    private void gem()
    {
        if (tb_artist.Text == "" || tb_date.Text == "" || tb_title.Text == "" || dd_genre.SelectedValue == "" || dd_price.SelectedValue == "")
        {
            lbl_fejl.Text = "Du skal udfylde alle felterne!";
        }
        else
        {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            SqlCommand    cmd  = new SqlCommand(@"UPDATE albums
                                        SET albumTitle = @title, albumCover = @cover, albumArtist = @artist, albumDate = @date, fk_priceId = @price, fk_genreId = @genre
                                        WHERE albumId = @albumId", conn);

            cmd.Parameters.AddWithValue("@albumId", ViewState["albumId"]);
            cmd.Parameters.AddWithValue("@title", tb_title.Text);
            cmd.Parameters.AddWithValue("@artist", tb_artist.Text);
            cmd.Parameters.AddWithValue("@date", tb_date.Text);
            cmd.Parameters.AddWithValue("@price", dd_price.SelectedValue);
            cmd.Parameters.AddWithValue("@genre", dd_genre.SelectedValue);



            string img_path = hf_billede.Value;
            if (fu_billede.HasFile)
            {
                //NewGuid danner uniq navn for billeder
                img_path = Guid.NewGuid() + Path.GetExtension(fu_billede.FileName);
                // Opret



                String UploadeMappe = Server.MapPath("~/Images/Albums/");

                //string Kategori = dd_type.SelectedItem.Text;
                String Lille   = "Small";
                String Stor    = "Large";
                String Filnavn = DateTime.Now.ToFileTime() + fu_billede.FileName;
                img_path = Filnavn;

                //Gem det orginale Billede
                fu_billede.SaveAs(UploadeMappe + Filnavn);

                // Definer hvordan
                ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width  = 50;
                BilledeSkalering.Height = 50;

                //Udfør skalleringen
                ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Lille + "/" + Filnavn, BilledeSkalering);

                //Lav nogle nye skalerings instillinger
                BilledeSkalering        = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width  = 200;
                BilledeSkalering.Height = 200;


                //Udfør selve skaleringen
                ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Stor + "/" + Filnavn, BilledeSkalering);

                // Tildel parameter-værdierne, fra input felterne.
                //cmd.Parameters.AddWithValue("@b_sti", user_img);
                //int x = Convert.ToInt32("@p_id");
                //cmd.Parameters.Add("@pk_film_id", SqlDbType.Int).Value = x;
                string old_img = hf_billede.Value;
                if (File.Exists(Server.MapPath("../Images/Albums/") + old_img))
                {
                    File.Delete(Server.MapPath("../Images/Albums/") + old_img);
                }
                if (File.Exists(Server.MapPath("../Images/Albums/Small/") + old_img))
                {
                    File.Delete(Server.MapPath("../Images/Albums/Small/") + old_img);
                }
                if (File.Exists(Server.MapPath("../Images/Albums/Large/") + old_img))
                {
                    File.Delete(Server.MapPath("../Images/Albums/Large/") + old_img);
                }
                //if (File.Exists(Server.MapPath("~/billeder/plakater/large/") + old_img))
                //{
                //    File.Delete(Server.MapPath("~//billeder/plakater/large/") + old_img);
                //}
            }
            else
            {
                lbl_fejl.Text = "Du skal vælge et billede!";
            }
            cmd.Parameters.AddWithValue("@cover", img_path);
            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            Response.Redirect(Request.RawUrl);
        }
    }
コード例 #13
0
ファイル: Albums.aspx.cs プロジェクト: Mort094/Final-Project
    private void opret()
    {
        if (tb_artist.Text == "" || tb_date.Text == "" || tb_title.Text == "" || dd_genre.SelectedValue == "" || dd_price.SelectedValue == "")
        {
            lbl_fejl.Text = "Du skal udfylde alle felterne!";
        }
        else
        {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            SqlCommand    cmd  = new SqlCommand();

            cmd.Connection = conn;

            cmd.CommandText = @"INSERT INTO albums (albumTitle, albumCover, albumArtist, albumDate, fk_priceId, fk_genreId) 
                                        VALUES (@title, @cover, @artist, @date, @price, @genre)";

            cmd.Parameters.AddWithValue("@title", tb_title.Text);
            cmd.Parameters.AddWithValue("@artist", tb_artist.Text);
            cmd.Parameters.AddWithValue("@date", tb_date.Text);
            cmd.Parameters.AddWithValue("@price", dd_price.SelectedValue);
            cmd.Parameters.AddWithValue("@genre", dd_genre.SelectedValue);

            string img_path = "intetbillede.jpg";

            //Hvis der er en fil i FilUploaden

            if (fu_billede.HasFile)
            {
                //NewGuid danner uniq navn for billeder
                img_path = Guid.NewGuid() + Path.GetExtension(fu_billede.FileName);
                // Opret



                String UploadeMappe = Server.MapPath("~/Images/Albums/");

                //string Kategori = dd_type.SelectedItem.Text;
                String Lille   = "Small";
                String Stor    = "Large";
                String Filnavn = DateTime.Now.ToFileTime() + fu_billede.FileName;
                img_path = Filnavn;

                //Gem det orginale Billede
                fu_billede.SaveAs(UploadeMappe + Filnavn);

                // Definer hvordan
                ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width  = 50;
                BilledeSkalering.Height = 50;

                //Udfør skalleringen
                ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Lille + "/" + Filnavn, BilledeSkalering);

                //Lav nogle nye skalerings instillinger
                BilledeSkalering        = new ImageResizer.ResizeSettings();
                BilledeSkalering.Width  = 200;
                BilledeSkalering.Height = 200;


                //Udfør selve skaleringen
                ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, UploadeMappe + "/" + Stor + "/" + Filnavn, BilledeSkalering);
            }
            else
            {
                lbl_fejl.Text = "Du skal vælge et billede!";
            }
            // Tildel parameter-værdierne, fra input felterne.
            cmd.Parameters.AddWithValue("@cover", img_path);



            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();

            Response.Redirect(Request.RawUrl);
        }
    }
コード例 #14
0
 public Bitmap ResizeImage(ResizeSettings settings)
 {
     destinationBitmap = Resizer.Resize(SourceBitmap, settings);
     return(this.DestinationBitmap);
 }
コード例 #15
0
ファイル: ImageJob.cs プロジェクト: zhaoyingju/resizer
 public ImageJob(Stream sourceStream, Stream destStream, ResizeSettings settings)
     : this((object)sourceStream, (object)destStream, new Instructions(settings))
 {
 }
コード例 #16
0
ファイル: ImageJob.cs プロジェクト: zhaoyingju/resizer
 public ImageJob(object source, object dest, ResizeSettings settings) :
     this(source, dest, new Instructions(settings))
 {
 }
コード例 #17
0
    protected void Button_Opret_Click(object sender, EventArgs e)
    {
        string        pris = TextBox_Price.Text;
        SqlConnection conn = new SqlConnection();

        conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlCommand cmd = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = @"INSERT INTO products(product_name, FK_category_id, product_price, product_storage, product_min_storage, product_max_storage, product_recomended_dirt, product_growthtime, product_image_1, product_image_2, product_image_3, product_description, product_number) VALUES (@name, @fk_category, @price, @storage, @min_storage, @max_storage, @recomended_dirt, @growthtime, @image1, @image2, @image3, @description, @number);";
        cmd.Parameters.AddWithValue("@name", TextBox_Name.Text);
        cmd.Parameters.AddWithValue("@price", Convert.ToDecimal(pris));
        cmd.Parameters.AddWithValue("@storage", TextBox_Storage.Text);
        cmd.Parameters.AddWithValue("@min_storage", TextBox_Min_Storage.Text);
        cmd.Parameters.AddWithValue("@max_storage", TextBox_Max_Storage.Text);
        cmd.Parameters.AddWithValue("@recomended_dirt", TextBox_Dirt.Text);
        cmd.Parameters.AddWithValue("@growthtime", TextBox_Time.Text);
        cmd.Parameters.AddWithValue("@description", TextBox_Description.Text);
        cmd.Parameters.AddWithValue("@number", TextBox_Productnumber.Text);
        cmd.Parameters.AddWithValue("@fk_category", DropDownList_Categorys.SelectedValue);

        //database sti til billede
        string bill_sti = "intetbillede.jpg";

        //Hvis der er en fil i FilUploaden
        #region image1
        if (FileUpload_Img1.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            bill_sti = Guid.NewGuid() + Path.GetExtension(FileUpload_Img1.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img1.FileName;
            bill_sti = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img1.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 120;
            BilledeSkalering.Height = 90;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);
        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@image1", bill_sti);
        #endregion
        #region image2
        if (FileUpload_Img2.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            bill_sti = Guid.NewGuid() + Path.GetExtension(FileUpload_Img2.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img2.FileName;
            bill_sti = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img2.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 90;
            BilledeSkalering.Height = 120;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);
        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@image2", bill_sti);
        #endregion
        #region image3
        if (FileUpload_Img3.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            bill_sti = Guid.NewGuid() + Path.GetExtension(FileUpload_Img3.FileName);
            // Opret
            String UploadeMappe = Server.MapPath("~/images/resizer/Original_Images/");
            String CroppedMappe = Server.MapPath("~/images/resizer/Croppede/");
            String Filnavn      = DateTime.Now.ToFileTime() + FileUpload_Img3.FileName;
            bill_sti = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img3.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 90;
            BilledeSkalering.Height = 120;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe + Filnavn, BilledeSkalering);
        }
        // Tildel parameter-værdierne, fra input felterne.
        cmd.Parameters.AddWithValue("@image3", bill_sti);
        #endregion

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

        Response.Redirect("Produkter.aspx");
    }
コード例 #18
0
        /// <summary>
        /// Generates the resized image to disk (if needed), then rewrites the request to that location.
        /// Perform 404 checking before calling this method. Assumes file exists.
        /// Called during PostAuthorizeRequest
        /// </summary>
        /// <param name="context"></param>
        /// <param name="ra"></param>
        /// <param name="vf"></param>
        protected virtual async Task HandleRequest(HttpContext context, HttpModuleRequestAssistant ra, IVirtualFileAsync vf)
        {
            if (!ra.CachingIndicated && !ra.ProcessingIndicated)
            {
                ra.ApplyRewrittenPath(); //This is needed for both physical and virtual files; only makes changes if needed.
                if (vf != null)
                {
                    ra.AssignSFH(); //Virtual files are not served in .NET 4.
                }
                return;
            }


            //Communicate to the MVC plugin this request should not be affected by the UrlRoutingModule.
            context.Items[conf.StopRoutingKey]  = true;
            context.Items[conf.ResponseArgsKey] = ""; //We are handling the request


            ra.EstimateResponseInfo();



            //Build CacheEventArgs
            var e = new AsyncResponsePlan();

            var modDate = (vf == null) ? System.IO.File.GetLastWriteTimeUtc(ra.RewrittenMappedPath) :
                          (vf is IVirtualFileWithModifiedDateAsync ? await((IVirtualFileWithModifiedDateAsync)vf).GetModifiedDateUTCAsync() : DateTime.MinValue);

            e.RequestCachingKey = ra.GenerateRequestCachingKey(modDate);

            var settings = new ResizeSettings(ra.RewrittenInstructions);

            e.RewrittenQuerystring   = settings;
            e.EstimatedContentType   = ra.EstimatedContentType;
            e.EstimatedFileExtension = ra.EstimatedFileExtension;



            //A delegate for accessing the source file
            e.OpenSourceStreamAsync = async delegate()
            {
                return((vf != null) ? await vf.OpenAsync() : File.Open(ra.RewrittenMappedPath, FileMode.Open, FileAccess.Read, FileShare.Read));
            };

            //Add delegate for writing the data stream
            e.CreateAndWriteResultAsync = async delegate(System.IO.Stream stream, IAsyncResponsePlan plan)
            {
                //This runs on a cache miss or cache invalid. This delegate is preventing from running in more
                //than one thread at a time for the specified cache key
                try
                {
                    if (!ra.ProcessingIndicated)
                    {
                        //Just duplicate the data
                        using (Stream source = await e.OpenSourceStreamAsync())
                            await source.CopyToAsync(stream); //4KiB buffer
                    }
                    else
                    {
                        MemoryStream inBuffer = null;
                        using (var sourceStream = vf != null ? await vf.OpenAsync() : File.Open(ra.RewrittenMappedPath, FileMode.Open, FileAccess.Read, FileShare.Read))
                        {
                            inBuffer = new MemoryStream(sourceStream.CanSeek ? (int)sourceStream.Length : 128 * 1024);
                            await sourceStream.CopyToAsync(inBuffer);
                        }
                        inBuffer.Seek(0, SeekOrigin.Begin);

                        var outBuffer = new MemoryStream(32 * 1024);

                        //Handle I/O portions of work asynchronously.
                        var j = new ImageJob
                        {
                            Instructions   = new Instructions(settings),
                            SourcePathData = vf != null ? vf.VirtualPath : ra.RewrittenVirtualPath,
                            Dest           = outBuffer,
                            Source         = inBuffer
                        };

                        await conf.GetImageBuilder().BuildAsync(j, int.MaxValue, CancellationToken.None);

                        outBuffer.Seek(0, SeekOrigin.Begin);
                        await outBuffer.CopyToAsync(stream);
                    }
                    ra.FireJobSuccess();
                    //Catch not found exceptions
                }
                catch (System.IO.FileNotFoundException notFound)
                {
                    if (notFound.Message.Contains(" assembly "))
                    {
                        throw;                                          //If an assembly is missing, it should be a 500, not a 404
                    }
                    //This will be called later, if at all.
                    ra.FireMissing();
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                }
                catch (System.IO.DirectoryNotFoundException notFound)
                {
                    ra.FireMissing();
                    throw new ImageMissingException("The specified resource could not be located", "File not found", notFound);
                }
                catch (Exception ex)
                {
                    ra.FireJobException(ex);
                    throw;
                }
            };



            //All bad from here down....
            context.Items[conf.ResponseArgsKey] = e; //store in context items

            //Fire events (for client-side caching plugins)
            conf.FirePreHandleImageAsync(this, context, e);

            //Pass the rest of the work off to the caching module. It will handle rewriting/redirecting and everything.
            //We handle request headers based on what is found in context.Items
            IAsyncTyrantCache cache = conf.GetAsyncCacheFor(context, e);

            //Verify we have a caching system
            if (cache == null)
            {
                throw new ImageProcessingException("Image Resizer: No async caching plugin was found for the request");
            }

            await cache.ProcessAsync(context, e);
        }
コード例 #19
0
    protected void Button_Gem_Ret_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand    cmd  = new SqlCommand();

        cmd.Connection = conn;

        cmd.CommandText = @"UPDATE Albums SET Album_name = @name, Album_price = @price, Album_artist = @artist, Album_img = @img, fk_genre_id = @genre_id WHERE Album_id = @Album_id";

        cmd.Parameters.AddWithValue("@Album_id", ViewState["Album_id"]);
        cmd.Parameters.AddWithValue("@name", TextBox_Name.Text);
        cmd.Parameters.AddWithValue("@price", TextBox_Price.Text);
        cmd.Parameters.AddWithValue("@artist", TextBox_Artist.Text);
        cmd.Parameters.AddWithValue("@genre_id", DropDownList_Genres.SelectedValue);


        #region Image 1
        string product_image1 = HiddenField_oldImage1.Value;
        if (FileUpload_Img1.HasFile)
        {
            //NewGuid danner uniq navn for billeder
            product_image1 = Guid.NewGuid() + Path.GetExtension(FileUpload_Img1.FileName);
            // Opret
            String UploadeMappe  = Server.MapPath("~/Images/Original/");
            String CroppedMappe1 = Server.MapPath("~/Images/200x200/");
            String CroppedMappe2 = Server.MapPath("~/Images/50x50/");
            String Filnavn       = DateTime.Now.ToFileTime() + FileUpload_Img1.FileName;
            product_image1 = Filnavn;

            //Gem det orginale Billede
            FileUpload_Img1.SaveAs(UploadeMappe + Filnavn);

            // Definer hvordan
            ImageResizer.ResizeSettings BilledeSkalering = new ImageResizer.ResizeSettings();
            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 200;
            BilledeSkalering.Height = 200;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe1 + Filnavn, BilledeSkalering);

            //Lav nogle nye skalerings instillinger
            BilledeSkalering        = new ImageResizer.ResizeSettings();
            BilledeSkalering.Width  = 50;
            BilledeSkalering.Height = 50;
            BilledeSkalering.Mode   = ImageResizer.FitMode.Crop;

            //Udfør selve skaleringen
            ImageResizer.ImageBuilder.Current.Build(UploadeMappe + Filnavn, CroppedMappe2 + Filnavn, BilledeSkalering);

            string old_img = HiddenField_oldImage1.Value;
            if (File.Exists(Server.MapPath("~/Images/Original") + old_img))
            {
                File.Delete(Server.MapPath("~/Images/Original") + old_img);
            }
            if (File.Exists(Server.MapPath("~/Images/200x200") + old_img))
            {
                File.Delete(Server.MapPath("~/Images/200x200") + old_img);
            }
            if (File.Exists(Server.MapPath("~/Images/50x50/") + old_img))
            {
                File.Delete(Server.MapPath("~/Images/50x50/") + old_img);
            }
        }
        cmd.Parameters.AddWithValue("@img", product_image1);
        #endregion

        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
        Response.Redirect("AdminAlbums.aspx");
    }