Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Visual Basic 6.0 Programmierer gesucht!

Fernando1 / 22 Antworten / Flachansicht Nickles

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

bei Antwort benachrichtigen
Andreas42 T-Rex „ Wenn die Frage gut gestellt ist, braucht man die bearbeiteten Bilder und das...“
Optionen

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

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen