vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Bild bearbeiten -> Alle Eigenschaften beibehalten 
Autor: SeaStorm
Datum: 03.08.11 09:20

Hi

Ich habe mir ein kleines Tool geschrieben, mit dem ich Bilder Zuschneiden kann. Das klappt zwar soweit ganz gut, aber .Net schmeisst leider alle möglichen Eigenschaften des Originalbildes einfach weg und nimmt stattdessen Standardwerte.
Sei es die DPI Zahl, Komprimierung oder was auch immer.
Wie kann ich denn ganz pauschal alle Eigenschaften Kopieren/Beibehalten?

zZ gehe ich hin, rechne mir aus wie Gross das Rechteck sein muss das ich brauche zum korrekten Zuschneiden und gebe das Zurück

 Overloads Function CopyBitmap(ByVal source As Bitmap, ByVal part As Rectangle) _
   As Bitmap
        Dim bmp As New Bitmap(
            part.Width, part.Height)
        bmp.SetResolution(source.HorizontalResolution, _
          source.VerticalResolution)
        bmp.Palette = source.Palette
        Dim g As Graphics = Graphics.FromImage(bmp)
        g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
        g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
        g.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
        g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
        g.DrawImage(source, 0, 0, part, GraphicsUnit.Pixel)
        g.Dispose()
        bmp = bmp.Clone(New Rectangle(0, 0, bmp.Width, bmp.Height), _
          source.PixelFormat)
        Return bmp
    End Function
Speicher ich dieses Bild, hinterlässt es mir allerdings etwas komplett anderes, als was ich da ursprünglich reingegeben habe.
Da sind dann die DPI weg, Farbpalette etc etc.

Das kann ich grösstenteils kopieren indem ich sowas mache:


 'Encoder Einstellen um das Bild wieder als richtiges Tiff speichern zu können
'Dim EnCodeFormat As ImageFormat = New ImageFormat(New Guid( 
' "b96b3cb1-0728-11d3-9d7b-0000f81ef32e"))
                        Dim myImageCodecInfo As ImageCodecInfo
                        Dim myEncoder As Encoder
                        Dim myEncoderParameter As EncoderParameter
                        Dim myEncoderParameters As EncoderParameters
                        ' Create a Bitmap object based on a BMP file.
                        ' Get an ImageCodecInfo object that represents the TIFF 
                        ' codec.
                        myImageCodecInfo = GetEncoderInfo( _
                          img.RawFormat.Guid.ToString)      
                        myEncoder = Encoder.Compression
                        myEncoderParameters = New EncoderParameters(1)
 
                        myEncoderParameter = New EncoderParameter(myEncoder, _
                          Fix(EncoderValue.CompressionNone))
                        myEncoderParameters.Param(0) = myEncoderParameter
 
'Und speichern
CutImage.Save(path & GetFileName(file), myImageCodecInfo, myEncoderParameters)
Sogar hier versaut .Net es wieder und schmeisst mir die davor eingestellte ( bmp.SetResolution(source.HorizontalResolution, source.VerticalResolution) ) DPI Zahl wieder weg und macht da z.B anstatt 600x600 ein 300x300 rein. Muss ich hier also auch nochmal Festlegen indem ich noch ein "CutImage.SetResolution(img.HorizontalResolution, img.VerticalResolution)" mache.

Gibt es denn keine Möglichkeit einfach alles so zu belassen wie es ist und einfach nur das Gewünschte Rechteck auszuschneiden? Oder zumindest Zuverlässig alle Eigenschaften zu kopieren?
zZ produziert mir das Tool ein deutlich kleineres ( Dateigrösse ) Bild mit deutlich schlechterer Qualität: http://quloa.de/testimages.zip
[EDIT] Ursprünglich Falsches Bild im zip gehabt ... korrigiert[/EDIT]

Mfg Sea

Beitrag wurde zuletzt am 03.08.11 um 09:36:00 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bild bearbeiten -> Alle Eigenschaften beibehalten2.099SeaStorm03.08.11 09:20
Re: Bild bearbeiten -> Alle Eigenschaften beibehalten1.500Manfred X03.08.11 15:00
Re: Bild bearbeiten -> Alle Eigenschaften beibehalten1.495Manfred X03.08.11 15:44
Re: Bild bearbeiten -> Alle Eigenschaften beibehalten1.521SeaStorm03.08.11 16:42
Re: Bild bearbeiten -> Alle Eigenschaften beibehalten1.531Manfred X03.08.11 17:06
Bildausschnitt: Farbtiefe 8 Bit (Indexed, Palette)1.651Manfred X04.08.11 09:16
Hilfsfunktionen1.515Manfred X04.08.11 09:17
Re: Bild bearbeiten -> Alle Eigenschaften beibehalten1.478SeaStorm05.08.11 07:53

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel