Sehr geehrte Damen und Herrn,
ich bin Student an der Uni Bochum Fachbereich Elektrotechnik und ich heiße Fernando.
Ich mache meine Projektarbeit in Visual Basic und ich muss viel damit arbeiten.
Deswegen habe ich einige Verständnisfragen dazu.
Wer kann mir dabei helfen und meine einige Fragen in Visual Basic beantworten?
Wenn einer mir dabei helfen kann, bin ich sehr dankbar dafür.
Meine e-Mail Adresse ist:
fernando.fransis@yahoo.de
Mit freundlichen Grüßen
Fernando Fransis
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
Hi!
Ich fühle mich irgendwie ignorier - keiner hört auf mich...
Auszüge aus dem Quelltext (ich denke, jetzt darf ich einfach):
Hier wird das Bild1 deklariert:
Begin VB.Frame Frame1
BorderStyle = 0 'None
Caption = "Frame1"
Height = 2600
Left = 300
TabIndex = 0
Top = 240
Width = 4100
Begin VB.PictureBox Picture1
BackColor = &H00FFFFFF&
BorderStyle = 0 'None
Height = 2500
Left = 0
ScaleHeight = 167
ScaleMode = 3 'Pixel
ScaleWidth = 267
TabIndex = 1
Top = 0
Width = 4000
End
End
Das ist für Bild2:
Begin VB.PictureBox Picture2
AutoRedraw = -1 'True
Height = 2500
Left = 480
ScaleHeight = 163
ScaleMode = 3 'Pixel
ScaleWidth = 263
TabIndex = 16
Top = 3840
Width = 4000
End
So erfolgt das Laden von Bild1:
Private Sub Öffnen_Click()
Picture1.Visible = True
dlgPicture.ShowOpen
file_num = FreeFile
Open dlgPicture.FileName For Binary Access Read As #file_num
Set Picture1.Picture = LoadPicture(dlgPicture.FileName)
Picture1.Move 0, 0
VScroll1.Max = Picture1.Height - Frame1.Height
HScroll1.Max = Picture1.Width - Frame1.Width
VScroll1.Value = 0
HScroll1.Value = 0
If Picture1.Height If Picture1.Width
Exit Sub
VScroll1 und HScroll1 sind Scrollbalken, die mit Picture1 verbunden sind (denke ich).
Das Problem tritt offenbar auf, wenn aus Picture1 das neue Picture2 erzeugt werden soll:
Private Sub Picture2_Erzeugen_Click()
Dim CV1 As ColorValues
Dim CV2 As ColorValues
breite1 = Picture1.ScaleWidth
höhe1 = Picture1.ScaleHeight
breite2 = Picture2.ScaleWidth
höhe2 = Picture2.ScaleHeight
Dim Anzahl As Integer
Anzahl = Txt_Anzahl.Text
For iY1 = 0 To höhe1 - 1
For iX1 = 0 To breite1 - 1
lCol1 = GetPixel(Picture1.hdc, iX1, iY1)
CV1 = fBreakColors(lCol1)
lCol2 = GetPixel(Picture2.hdc, iX2, iY2)
CV2 = fBreakColors(lCol2)
If CV1.iRed
If CV1.iGreen
If CV1.iBlue
SetPixel Picture2.hdc, iX1, iY1, RGB(CV2.iRed, CV2.iGreen, CV2.iBlue)
Next iX1
Next iY1
Picture2.Refresh
End Sub
Wie ich schon versucht habe zu erklären, könnte die Verwendung der Scale-Werte das Problem sein. ist das zufällig die reale Grösse des Objektes auf dem Bildschirm, so dass nicht die komplette Grösse von Picture1 bearbeitet wird? oder arbeitet die Routine nur im sichbaren Fenster?
Es handelt sich offenbar um eine Art "Kontrastverstärkung", die unscharfe Strukturen in Picture1 in Picture2 schärft (durch Manipulation der Farben).
Bis dann
Andreas