Przesunięty przez: roland 26 Maj 2011, 07:29 |
Automatyczny zapis wszystkich bitmap z dokumentu |
Autor |
Wiadomość |
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 4 Maj 2011, 13:52 Automatyczny zapis wszystkich bitmap z dokumentu
|
|
|
Witam.
Dajmy na to, że mam projekt w którym wyciąłem ze 20 bitmap.
Czy istnieje w tym programie opcja by program automatycznie zapisał wszystkie bitmapy w osobnych plikach lub projektach? |
Ostatnio zmieniony przez Bunch 19 Maj 2011, 21:57, w całości zmieniany 1 raz |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
|
|
|
|
DzumA - 78
Pomógł: 99 razy Dołączył: 24 Kwi 2009 Posty: 685 Skąd: Opole
|
Wysłany: 4 Maj 2011, 13:55
|
|
|
jak masz każdą bitmapę na osobnej stronie
skorzystaj z MAKRO: File Converter
Narzędzia/Makra/Uruchom Makro... |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 4 Maj 2011, 14:44
|
|
|
Przede wszystkim dziękuję za podanie namiarów, to gdzie mam się udać w menu programu.
DzumA - 78 napisał/a: | jak masz każdą bitmapę na osobnej stronie
|
A jak mam wszystkie bitmapy na jednej i tej samej stronie? |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 4 Maj 2011, 21:29
|
|
|
Bunch, nie masz większych problemów? Jak byś miał 200 albo 2000 bitmap, to byłby kłopot, a tak to jest 3 min. roboty. Głupoty gadam, 3 min. to by mnie to zajęło, tobie góra 2 Klikasz bitmapę, ctr+E (eksport) cmx (bo wyszparowane) i Enter. Powtarzasz operację 20 razy i po robocie.
Tak poważnie, to myślę, że jakbym wypił jeszcze jedno piwo, to mógłbym napisać jakiś skrypcik, który by to zrobił? |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 5 Maj 2011, 22:09
|
|
|
A czemu niby mi szybciej miałoby to zając niż Tobie?
Nie widzę powodu takiej sytuacji.
Mówisz, że albo metodą "MARKA" albo eksportować ZAZNACZONY obiekt do formatu *.cmx? |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 19 Maj 2011, 21:56
|
|
|
Otóż... program mi zapisuje, ale ŁĄCZY wszystkie obecne na stronach obiekty, a ja - jak mówiłem przecież - chce by mi zapisał każdy jeden obiekt z osobna. najlepiej do PNG bez tła (bo mam wycięte obiekty).
I jak to zrobić?
Proszę o wskazówki. |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 19 Maj 2011, 22:05
|
|
|
Zaznaczasz obiekt (lub jego grupę) i przy eksporcie zaznaczasz "Eksportuj tylko zaznaczone". |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 20 Maj 2011, 20:24
|
|
|
Malutki napisał/a: | Zaznaczasz obiekt (lub jego grupę) i przy eksporcie zaznaczasz "Eksportuj tylko zaznaczone". |
Malutki - nie działa.
Program mi zapisuje, ale też ŁĄCZY wszystkie obecne na stronach obiekty a ja chce by mi zapisał każdy jeden obiekt z osobna.
I jak to zrobić? No, podaliście rozwiązanie, które nie działa. |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 20 Maj 2011, 20:58
|
|
|
Na bitmapy musi działać! Chyba, że chcesz żeby interaktywne efekty (przeźroczystość, cień itp.) też zostały zapisane? Wtedy nie ma takiej możliwości. Zamiast krzyczeć "nie działa", "nie da się" i wyklinać program warto pomyśleć czy klient ma mieć możliwość np. edycji cienia czy przeźroczystości. Bo jak nie to zwykły *.gif czy *.png na pewno wystarczy...
Ja sam nigdy nie eksportuję z Corela bezpośrednio takich bitmap - robię to w ten sposób, że zapisuję daną bitmapę (czy też cały projekt) w dwa, trzy razy wyższej rozdzielczości, otwieram to w PS i tam "kończę". Ale to już trochę zmiana tematu, więc potraktujmy to jako off-topic czy jak to się tam nazywa ;) |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 20 Maj 2011, 21:08
|
|
|
Po pierwsze, jak nie ma? Jak nie ma możliwości? MUSI SIĘ DAĆ. Bo PNG posiada przeźroczystość. Więc na pewno się DA tak zapisać. Jak możesz twierdzić, ze się nie da?
Po drugie, akurat tym razem chcę zwykłą, wyciętą bitmapę zapisać...
Malutki, JAK BOGA KOCHAM - NIE DZIAŁA. Robię wg instrukcji Twojej i nic.
Eksportuje mi JEDNĄ, WIELKĄ GRAFIKĘ z WSZYSTKIMI zaznaczonymi bitmapami, jeden gigantyczny płacht z całej strony będący jedną grafiką. |
|
|
|
|
tegraf
Ekspert tegraf
Pomógł: 74 razy Dołączył: 21 Mar 2011 Posty: 1954 Skąd: Zielona Góra
|
Wysłany: 20 Maj 2011, 21:14
|
|
|
Bunch napisał/a: | z WSZYSTKIMI zaznaczonymi bitmapami |
I dobrze działa. Z wszystkimi zaznaczonymi... jak piszesz.
Chcesz każdą z osobna? Zaznacz pierwszą i wyeksportuj. Zaznacz drugą i wyeksportuj. I tak do końca... Innego sposobu nie znam.
Pozdrawiam |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 20 Maj 2011, 21:19
|
|
|
No nie.... Weź mnie nie rozbrajaj takim komentarzem
"i dobrze, bo działa" , "a jak nie to ręcznie, po kolei"
Skoro się jakoś ta, to chciałbym wiedzieć jak.
Czekam na Malutkiego, bo on coś tam się wypowiadał.
Tak, chcę każdą z osobna. Poleciliście tryb makro - nie działa. Efekt dokładnie taki sam (eksportuje scalone do jednej, dużej bitmapy wszystkie).
Photoshop ma taką opcję - ciekawostka. |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 23 Maj 2011, 11:18
|
|
|
Malutki napisał/a: | Na bitmapy musi działać! |
Nie działa tak jak bym tego chciał. Czy to znaczy, że Corel nie potrafi tego zrobić? |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 23 Maj 2011, 11:50
|
|
|
zobacz
Rys.jpg
|
Pobierz Plik ściągnięto 990 raz(y) 734.3 KB |
|
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 23 Maj 2011, 13:30
|
|
|
Ty nie rozumiesz.
Po pierwsze: ja chcę zapisać w sposób automatyczny wszystkie zaznaczone elementy w pliku do osobnych grafik. Sposób Malutkiego z użyciem Makra NIE DZIAŁA.
Ja wiem jak wygląda proces wybrania zapisu do pliku dla poszczególnych elementów. Wiem w co się wchodzi i gdzie się klika.
Natomiast program zapisuje wszystkie te zaznaczone bitmapy czy cokolwiek innego na jednej płaszczyźnie. Dostaję potem jeden obrazek z wszystkimi bitmapami, a nie kilka obrazków na którym jest każda jedna bitmapa z osobna. Przecież już pisałem o tym post wcześniej.
Sposób Malutkiego z użyciem Makra NIE DZIAŁA. Też nie działa, niczym się on nie różni od ręcznego zapisywania.
Nie wiecie jak to zrobić?
Nagrać Ci film, który udowodni, że to nie działa, malutki? |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 23 Maj 2011, 16:12
|
|
|
*.png to prosty format bitmapowy. Jak Ty chcesz to zapisać? Przecież program MUSI przy eksporcie wszystko spłaszczyć do jednej warstwy! Chcesz mieć później wszystkie obiekty na oddzielnych warstwach to zapisz to po prostu w Corelu ("zapisz tylko zaznaczone") i będziesz miał wszystko w jednym. Jak chcesz mieć każdą bitmapę w innym pliku to eksportuj/zapisuj je pojedynczo!
Zresztą nie widzę sensu w takiej operacji (nie napisałeś czemu ma to służyć), więc być może nie mogę zrozumieć co chcesz osiągnąć... |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 24 Maj 2011, 13:52
|
|
|
Malutki, w tej zagwozdce nie jest ważne do czego ma mi to służyć, jest ważne co chcę osiągnąć. Nie przez co, a co. A chcę aby program zapisywał mi wszystkie zaznaczone elementy z całego dokumentu, lub z jednej strony, do osobnych plików na dysku. Jak na przykład PNG. Już rozumiesz? Przecież mówiłem już wcześniej o co mi chodzi.
Cytat: | *.png to prosty format bitmapowy. Jak Ty chcesz to zapisać? Przecież program MUSI przy eksporcie wszystko spłaszczyć do jednej warstwy! |
To niechże spłaszczy! Tylko chcę mieć każdy obiekt jaki był w programie w osobnych plikach.
A po eksporcie wychodzi mi jedna wielka tekstura. Nie rozumiesz Malutki (co mnie dziwi).
Wyciąłem sobie w projekcie programu dziesięć różnych psich kup. Różne rodzaje. Gęste, rzadkie, brązowe, czarne (nawet białe!), duże, małe, z kawałkami owoców i rodzynek, bez.
I teraz chcę by mi program zapisał je do osobnych plików na dysk, w sposób automatyczny.
Czyli abym coś zrobił i po tej operacji na swym dysku dojrzał pliki:
Psia kupa1.png
Psia kupa2.png
Psia kupa3.png
Psia kupa4.png
Psia kupa5.png
Psia kupa6.png
Psia kupa7.png
Psia kupa8.png
Psia kupa9.png
Psia kupa10.png
Zapisane tam gdzie sobie życzyłem. Automatycznie.
A póki co albo mam to ręcznie robić, albo makra nic nie dają bo dostaję jeden zapisany plik an dysk z wszystkimi obiektami na niej. Co za idiotyzm, po co to/ Skoro nic nie zmieniło?
Już kumasz co chcę? Ktoś potem mi powie niechże pan wyciągnie i da mi te wszystkie fotki z pańskiej setki plakatów bo mi się podobają i chcę je mieć jako poszczególne pliki na dysku swoim. I co? Mam ręcznie zapisywać ze 100 projektów?
Albo inny - chyba najlepszy - przykład. Jakiś grafik wycina artykuły do gazetki reklamowej. Dostał fotki, wyciął, złożył gazetkę i koniec. A za jakiś czas "jest potrzeba" skorzystania z już wyciętych zdjęć. To zamiast grzebać w projektach, lepiej sobie tak automatycznie je z nich wyciągnąć i posegregować na dysku, a potem już importować do nowego projektu gotowe, wycięte pliki. |
|
|
|
|
Cysorz
Pomógł: 205 razy Dołączył: 01 Sty 2011 Posty: 3137 Skąd: Kraków
|
Wysłany: 24 Maj 2011, 16:28
|
|
|
Tylko ręcznie. |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 24 Maj 2011, 16:50
|
|
|
Malutki, przy całym szacunku, wydaje mi się, że da się taki skrypt napisać.
Na pierwszy rzut okiem wydaje się to całkiem proste, choć komuś kto się pisaniem makr nie zajmował, a ja do takich należę, może chwilę zająć. Program wie co jest zaznaczone, a jak on wie, to da się tę informację od niego po dobroci, albo pod przymusem uzyskać
Szaman by się przydał, ale on pisze tylko profesjonalne makra, a to zadanie wygląda na bardziej amatorskie. |
|
|
|
|
maroQ
Doradca
Pomógł: 16 razy Wiek: 40 Dołączył: 08 Lut 2011 Posty: 117 Skąd: Kalisz
|
Wysłany: 26 Maj 2011, 23:16
|
|
|
Dawno mnie tu nie było i trochę czasu minęło nim przypomniałem sobie hasło.
Zresztą ostatnio cały czas zabiera mi remont biura i nie mam czasu na niedochodowe fora.
Ponieważ jednak program był naprawdę prosty oraz być może mi się przyda więc oto on:
Kod: | Public Sub ExportThisShit()
Dim s As Shape
Dim expflt As ExportFilter
Dim dirName, report As String
Dim cnt As Integer
dirName = InputBox("Wprowadź lokalizację plików (katalog):", "Ścieżka do plików", "H:\kosz\pliki\")
cnt = 0
report = "Wygenerowano pliki:"
For Each s In ActivePage.Shapes
If s.Type = cdrBitmapShape Then
Set expflt = s.Bitmap.SaveAs(dirName & "plik_" & cnt & ".png", cdrPNG, cdrCompressionNone)
With expflt
.Interlaced = True
.Transparency = 0 ' FilterPNGLib.pngNone
.InvertMask = False
.Finish
End With
report = report & vbNewLine & " - " & "plik_" & cnt & ".png"
cnt = cnt + 1
End If
Next s
report = report & vbNewLine & "i zapisano je w katalogu: " & dirName
MsgBox report, vbInformation, "Zapis zakończony sukcesem:"
End Sub |
Ścieżka do katalogu przypisana na stałe, chociaż w trochę uciążliwy sposób można ją za każdym razem zmieniać. By zrobić to lepiej trzeba by wyjść z ograniczonego VBA do VB6 lub VB.Net i tam dodać opcję wyboru katalogu. Można też dodać odpowiednio wykonaną bibliotekę do VBA ale nie chce mi się tłumaczyć jak to się robi. Zresztą wujek google zna wszystkie odpowiedzi.
Cieszcie się i radujcie bo ten program jest całkiem za free... co mnie wcale nie cieszy, ale za coś takiego raczej bym nie mógł nic skasować.
malutki napisał/a: | Tylko ręcznie. |
...tak, właściwie to makro też robi to wszystko ręcznie :) |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 26 Maj 2011, 23:28
|
|
|
Matko z córką, nie miałem pojęcia, że posiadam umiejętności przywoływania szamana
Cześć MaroQ, a dlaczego by nie? e=mc2 przecież jeszcze prostsze i krótsze? |
|
|
|
|
kula69
Wersja CorelDRAW: x5
Pomógł: 71 razy Wiek: 55 Dołączył: 04 Lut 2011 Posty: 890 Skąd: Koszalin
|
Wysłany: 31 Maj 2011, 07:17
|
|
|
Noishnorarrix nawet nie pokusił się o tłumaczenie i umieszczenie w odpowiednim miejscu dziwne zwyczaje |
|
|
|
|
maroQ
Gość
|
Wysłany: 31 Maj 2011, 08:54
|
|
|
@kula69:
Noishnorarrix to zwykły spamer tj. bot który umieszcza spamowe treści na forach i blogach. Na mojej stronie regularnie dostaję komentarze tego typu do sprawdzenia lub do spamu. Bez walidacji obrazkiem i to googlowym nie powinno być możliwości pisania postów na forum. To tak dla bezpieczeństwa, gdyż umieszczenie linku do strony z wirusami wystarcza do wygenerowania złej opini dla strony, a to powoduje że później np. firefox i chrome blokują wstęp na dany serwer.
Ta wiadomość została napisana przez Szamana bez logowania. Tak więc itak nie da się powiedzieć czy to napewno szaman pisze czy też to jakiś ludek podający się za szamana. :D
Moim zdaniem tylko zalogowani powinni mieć możliwość pisania, a jeśli nie to trzeba trochę lepiej zabezpieczyć forum. |
|
|
|
|
Bunch
Ekspert
Pomógł: 1 raz Dołączył: 10 Lis 2007 Posty: 700 Skąd: Nieważne skąd
|
Wysłany: 5 Czerwiec 2011, 12:11
|
|
|
Dzięki, zapewne to jest skrypt, który trzeba gdzieś wklepać, zapisać czy ustawić. Dziękuję.
Ale parę rzeczy jest dla mnie niejasne.
Nie wiem co z nim zrobić.
Czy mam coś zmieniać w tych linijkach?
1. Wprowadź lokalizację plików (katalog):
2. Ścieżka do plików
3. H:\kosz\pliki\
Co odpowiada za co? Przed wklejeniem gdzieś tego kodu mam zmieniać mu ręcznie ścieżki źródłowe? I w pozycji numer jeden o jaki katalog i lokalizację plików chodzi? Mam tu wpisać lokalizację pliku CDR który zawiera ileś tam grafik? Czy co innego?
Pozycja numer dwa - ścieżka do jakich plików? O jakie PLIKI chodzi?
Numer trzy - kosz. Co to jest za wartość i po co? Co tam ma być?
Nie wiem o co chodzi w ogóle, to jakaś tautologia dla mnie Nie wiem co ja mam z tym zrobić.
No i oprócz tego druga sprawa. Mam to wkleić (ten cały kod) do pliku tekstowego i zapisać pod JAKĄ nazwą? Bo jak rozumiem to potem w programie wskazuje zapisany skrypt makra do zaimportowania, i właśnie wskazuję ten plik jaki utworzyłem. Tak? Tak to działa?
I rozumiem też, że aby zachować przeźroczystość to muszę wpisać "1" tam gdzie jest obecnie "0" przy napisie "transparency", tak?
Dobra, przyznam się bez bicia, że nie wiem. Dziękuję za ten skrypt.
Ale nie wiem co dalej mam z tym zrobić.
Pomożecie?
Poniżej jeszcze raz skrypt tego Szamana (nie wiem skąd ta nazwa skoro nick ma inny):
Kod: | Public Sub ExportThisShit()
Dim s As Shape
Dim expflt As ExportFilter
Dim dirName, report As String
Dim cnt As Integer
dirName = InputBox("Wprowadź lokalizację plików (katalog):", "Ścieżka do plików", "H:\kosz\pliki\")
cnt = 0
report = "Wygenerowano pliki:"
For Each s In ActivePage.Shapes
If s.Type = cdrBitmapShape Then
Set expflt = s.Bitmap.SaveAs(dirName & "plik_" & cnt & ".png", cdrPNG, cdrCompressionNone)
With expflt
.Interlaced = True
.Transparency = 0 ' FilterPNGLib.pngNone
.InvertMask = False
.Finish
End With
report = report & vbNewLine & " - " & "plik_" & cnt & ".png"
cnt = cnt + 1
End If
Next s
report = report & vbNewLine & "i zapisano je w katalogu: " & dirName
MsgBox report, vbInformation, "Zapis zakończony sukcesem:"
End Sub |
|
|
|
|
|
|