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-2024
 
zurück

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

Visual-Basic Einsteiger
Re: foto druck assistent 
Autor: Zardoz
Datum: 26.12.12 21:14

Hallo Paulix,
hier mal der erste Teil:
Private Const COLORONCOLOR = 3
Private Const HALFTONE = 4
 
Public Sub PrintPicture(Path As String)
 
  Dim TmpPic As StdPicture, Fkt1#, Fkt2#
  Dim QuellBreite&, QuellHoehe&, ZielBreite&, ZielHoehe&
  Dim P1hdc&, P1OldHandle&, SW1&, SH1&
  Dim P2hdc&, P2OldHandle&, OldMode&
 
  If Dir$(Path) = "" Then
    MsgBox "Datei nicht gefunden:" & vbCr & Path, vbExclamation + vbOKOnly
    Exit Sub
  End If
 
  Screen.MousePointer = vbHourglass
  DoEvents
 
  Set TmpPic = LoadPicture(Path)
  QuellBreite = Int(0.5 + Me.ScaleX(TmpPic.Width, vbHimetric, vbPixels))
  QuellHoehe = Int(0.5 + Me.ScaleY(TmpPic.Height, vbHimetric, vbPixels))
  P2hdc = CreateCompatibleDC(0)
  P2OldHandle = SelectObject(P2hdc, TmpPic.Handle)
 
  SW1 = 2000
  SH1 = 2000
  Fkt1 = SW1 / QuellBreite
  Fkt2 = SH1 / QuellHoehe
  If Fkt2 < Fkt1 Then Fkt1 = Fkt2
  If Fkt1 > 1 Then Fkt1 = 1
  SW1 = QuellBreite * Fkt1
  SH1 = QuellHoehe * Fkt1
 
  P1hdc = CreateCompatibleDC(0)
  P1OldHandle = SelectObject(P1hdc, _
    CreateCompatibleBitmap(Me.hdc, SW1, SH1))
  OldMode = SetStretchBltMode(P1hdc, HALFTONE)
  Call StretchBlt(P1hdc, 0, 0, SW1, SH1, _
    P2hdc, 0, 0, QuellBreite, QuellHoehe, vbSrcCopy)
  Call SetStretchBltMode(P1hdc, OldMode)
 
  Call SelectObject(P2hdc, P2OldHandle)
  Set TmpPic = LoadPicture()
  Call DeleteDC(P2hdc)
 
  With Printer
    If SW1 > SH1 Then
      .Orientation = vbPRORLandscape
    Else
      .Orientation = vbPRORPortrait
    End If
    .ScaleMode = vbPixels
    Printer.Print " "
    Fkt1 = .ScaleWidth / SW1
    Fkt2 = .ScaleHeight / SH1
    If Fkt2 < Fkt1 Then Fkt1 = Fkt2
    ZielBreite = SW1 * Fkt1
    ZielHoehe = SH1 * Fkt1
    OldMode = SetStretchBltMode(.hdc, COLORONCOLOR)
    Call StretchBlt(.hdc, (.ScaleWidth - ZielBreite) / 2, _
      (.ScaleHeight - ZielHoehe) / 2, ZielBreite, ZielHoehe, _
      P1hdc, 0, 0, SW1, SH1, vbSrcCopy)
    Call SetStretchBltMode(.hdc, OldMode)
    .EndDoc
  End With
  Call DeleteObject(SelectObject(P1hdc, P1OldHandle))
  Call DeleteDC(P1hdc)
 
  Screen.MousePointer = vbDefault
 
End Sub
Wie gross sind denn deine Bilder in Pixeln?

Gruss,

Zardoz

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
foto druck assistent2.349Oly29.07.08 23:01
Re: foto druck assistent1.761ModeratorDieter30.07.08 08:01
Re: foto druck assistent1.578Oly30.07.08 11:22
Re: foto druck assistent1.585ModeratorDieter30.07.08 11:37
Re: foto druck assistent1.537Oly30.07.08 11:46
Re: foto druck assistent1.406Paulix110.12.12 17:42
Re: foto druck assistent1.425Zardoz10.12.12 20:12
Re: foto druck assistent1.402Paulix111.12.12 12:34
Re: foto druck assistent1.377Zardoz11.12.12 13:38
Re: foto druck assistent1.323Paulix118.12.12 16:42
Re: foto druck assistent1.306Zardoz26.12.12 21:14
Re: foto druck assistent1.292Paulix127.12.12 12:38
Re: foto druck assistent1.291Zardoz27.12.12 17:58

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-2024 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