Frage : Regröße Bild im Gedächtnis vom Byte ()

Hallo zu allen,

I eine SQL-Datenbank 2005 haben. Ich speichere meine Bilder in der Datenbank als Bild. Ich wünsche zur Regröße das Bild zu einem Daumennagel und speichere dann diesen Thumbnail zur Datenbank in einer anderen Tabelle. Using den Code unten halte ich auf dem Erhalten einer Störung, wenn ich das Bild again.

What ansehen möchte bin ich falsch tuend und bin dieser die rechte Weise des Die Größe neu bestimmens des Bildes im Gedächtnis?

Thanks
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
Public Funktion createThumbandFull (ByVal ItemCode als Schnur) als AUErrorCapture führt IAUDBInUpDel.createThumbandFull ein
        Schwaches errorReturn als AUErrorCapture = nichts

        Versuch

            Schwaches DB als neues databaseLinqDataContext
            DB. Connection.ConnectionString =
                furConn.ConnectionString

            Schwaches itemIm = von i im db.AUOrigImages _
                         Wo i.ItemCode = ItemCode _
                         i.ImageContent vorwählen

            newResizedImage als Byte verdunkeln () = nichts
            Strom als MemoryStream verdunkeln

            Für jedes retI im itemIm
                newResizedImage = retI.ToArray
                Strom = neues MemoryStream (newResizedImage)
                ResizeThumbImage (CDbl (0.1), Strom, ItemCode)
             Zunächst

        Fang ex als Ausnahme
            Wurf ex
        Enden-Versuch

        RückholerrorReturn
    Enden-Funktion





Privates VorResizeThumbImage (ByVal scaleFactor als Doppeltes, ByVal Filetoresize als MemoryStream, ByVal itemCodetoSave als Schnur)

        Versuch

            Schwach image__1 = System.Drawing.Image.FromStream (Filetoresize)
            Schwaches newWidth = CInt ((image__1.Width * scaleFactor))
            Schwaches newHeight = CInt ((image__1.Height * scaleFactor))
            Schwaches thumbnailBitmap = neues System.Drawing.Bitmap (newWidth, newHeight)

            Schwaches thumbnailGraph = System.Drawing.Graphics.FromImage (thumbnailBitmap)
            thumbnailGraph.CompositingQuality = CompositingQuality.HighQuality
            thumbnailGraph.SmoothingMode = SmoothingMode.HighQuality
            thumbnailGraph.InterpolationMode = InterpolationMode.HighQualityBicubic

            Schwaches imageRectangle = neues System.Drawing.Rectangle (0, 0, newWidth, newHeight)
            thumbnailGraph.DrawImage (image__1, imageRectangle)
            'Kodierungs-Parameter
            Schwache Qualität als ganze Zahl = 90 '90 ist die magische Einstellung - wirklich. Sie hat ausgezeichnete Qualität und Dateigröße.
            Schwache encoderParameters als neues System.Drawing.Imaging.EncoderParameters (1)
            encoderParameters.Param (0) = neues System.Drawing.Imaging.EncoderParameter (System.Drawing.Imaging.Encoder.Quality, CLng (Qualität))

            Schwache Rumpfstation als System.IO.MemoryStream = neues System.IO.MemoryStream ()

            thumbnailBitmap.Save (Rumpfstation, image__1.RawFormat)

            Schwacher img als Byte () = neues Byte (Rumpfstation. Länge) {}


            Schwaches DB als neues databaseLinqDataContext
            DB. Connection.ConnectionString =
                furConn.ConnectionString

            db.AUResizeThumbImage (itemCodetoSave, itemCodetoSave u. „.jpg“, img)

            thumbnailGraph.Dispose ()
            thumbnailBitmap.Dispose ()
            image__1.Dispose ()

        Fang ex als Ausnahme
            Wurf ex
        Enden-Versuch
    Enden-Unterseeboot

Antwort : Regröße Bild im Gedächtnis vom Byte ()

In die ResizeThumbImage Funktion fast berichtigen, sehen:

thumbnailBitmap.Save (Rumpfstation, image__1.RawFormat)
Img als Byte verdunkeln () = neues Byte (Rumpfstation. Länge) {}
db.AUResizeThumbImage (itemCodetoSave, itemCodetoSave u. „.jpg“, img)


Sie nie setzen wirklich jeden möglichen Inhalt in die img-Bytereihe.  Sie erklären sie die rechte Größe, aber seine ruhigen leeren sich.

Diese Linie ändern:
   Img als Byte verdunkeln () = neues Byte (Rumpfstation. Länge) {}
zu:
   Schwacher img als Byte () = fs.ToArray ()
Weitere Lösungen  
 
programming4us programming4us