Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

Makra - Zachowanie oryginalnych rozmiarów w mm po rastrowaniu X4+

zyzio - 1 Maj 2018, 23:11
Temat postu: Zachowanie oryginalnych rozmiarów w mm po rastrowaniu X4+
Witam. Koledzy ponieważ cały czas do tej pory trzymam się X3 ale chcę sobie dokupić dodatkowo X4, bo otwiera więcej pdf-ów lecz z tego co zauważyłem od tej wersji zmienił się mechanizm wygładzania podczas rasteryzacji, który powoduje zmianę rozmiaru obiektu w mm - teraz dodatkowy wygładzający piksel po obwodzie zostaje dodany na zewnątrz (dokładnie pół piksela z każdej strony), a mi to bardzo nie pasuje ponieważ rastrowane obiekty następnie wielokrotnie powielam na dużym arkuszu drukowym i dochodzi do pomyłek w ostatecznym rozmiarze całego składu.

Zastanawiam się czy dałoby się napisać takie obejście tego problemu czyli makro, które podczas jednego procesu najpierw przypisze do dwóch zmiennych oryginalną wysokość i szerokość zaznaczenia w milimetrach, następnie albo wywoła oryginalne okienko przekształcenia w mapę bitową albo pozwoli wprowadzić te same parametry co w tym okienku ale na customowej formie i w ostatnim etapie przypisze zrastrowanej już bitmapie początkowe rozmiary w milimetrach.

Z góry dzięki jak zawsze

grzjanik - 7 Maj 2018, 16:07
Temat postu: Rozmiar bitmapy
Witam.

U mnie działa. :)

Kod:
'Funkcja opóźniająca od John'a al. "runflacruiser" z forum Oberon'a

Function Wait(sngWaitMax As Single) As Boolean
    Dim sngStartTime As Single
    sngStartTime = Timer
    Do While (Timer - sngStartTime) < sngWaitMax
        DoEvents
    Loop
End Function


Dalej moje makro

Kod:
Sub BitmapaRozmiarowa()
    Dim s As Shape, x#, y#, w#, h#
   
    ActiveDocument.ReferencePoint = cdrBottomLeft
    ActiveDocument.Unit = cdrMillimeter

    If ActiveSelection.Shapes.count <> 0 Then
        ActiveShape.GetBoundingBox x, y, w, h, False

        SendKeys "%{B}", True
        SendKeys "{.}", True

        Do
            Wait (1) 'Czas pauzy w sekundach (tutaj pauza powtarzana
            dopóki nie zostanie zamknięte okno zamiany na bitmapę)
        Loop Until ActiveWindow.Active

        ActiveShape.SetPosition x, y
        ActiveShape.SetSize w, h

        Exit Sub
    Else
        MsgBox "Brak selekcji!", vbCritical
    End If
   
    ActiveWindow.Refresh
    Application.Refresh
   
End Sub


Generalnie makro pobiera położenie i rozmiar obiektu, otwiera okno zamiany na bitmapę, po jego zamknięciu zmienia rozmiar i położenie bitmapy.

Pozdrawiam.
GrzJanik


Powered by phpBB modified by Przemo © 2003 phpBB Group