Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Masowa zmiana jakości zdjęć jpg
Forum PHP.pl > Inne > Oceny
Fifi209
Witam, od pewnego czasu zabierałem się za napisanie programu, który w łatwy sposób umożliwi mi masową zmianę jakości zdjęć.

Działać ma to tak:
Wybieramy katalog, wybieramy zdjęcia które nas interesują, klikamy pomniejsz i chwilkę czekamy.

Wielu ludzi nawet nie zdaje sobie sprawy, że nie trzeba zmienić rozmiaru zdjęcia, aby zajmowało mniej, wystarczy zapisać w troszkę gorszej jakości (praktycznie niezauważalne dla oka)

Szukałem narzędzia, które byłoby proste i spełniało dokładnie tą jedną funkcję - nie znalazłem.
Napisałem więc swój program, który Wam przedstawię.

Wersja: 1.5.0.0
Autor: Fifi209
Platforma: .NET Framework 4
Nazwa: ImageEditor
Link: http://fifi209.pl/ImageEditor.rar

Proszę o skromne opinie, ew. jakieś rady co zmienić/poprawić.

@edit
Link poprawiony, teraz powinno działać.
Blame
Niestety program nie chce mi się połączyć z serwerem i pobrać pliki wink.gif
Tak w ciemno tylko powiem, że oprócz samego zmniejszania wagi zdjęć mógłby też je zmniejszać do podanych maksymalnych wymiarów wink.gif
Fifi209
Cytat(Blame @ 23.06.2011, 10:36:01 ) *
Niestety program nie chce mi się połączyć z serwerem i pobrać pliki wink.gif

Przy instalacji?
Cypherq
Kod
PLATFORM VERSION INFO
    Windows             : 5.1.2600.196608 (Win32NT)
    Common Language Runtime     : 4.0.30319.225
    System.Deployment.dll         : 4.0.30319.1 (RTMRel.030319-0100)
    clr.dll             : 4.0.30319.225 (RTMGDR.030319-2200)
    dfdll.dll             : 4.0.30319.1 (RTMRel.030319-0100)
    dfshim.dll             : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url            : file:///D:/download/ImageEditor.application

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of D:\download\ImageEditor.application resulted in exception. Following failure messages were detected:
        + Downloading file:///D:/download/ImageEditor.application did not succeed.
        + Could not find file 'D:\download\ImageEditor.application'.
        + Could not find file 'D:\download\ImageEditor.application'.
        + Could not find file 'D:\download\ImageEditor.application'.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [2011-06-23 11:59:28] : Activation of D:\download\ImageEditor.application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [2011-06-23 11:59:33] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
        - Downloading file:///D:/download/ImageEditor.application did not succeed.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
            at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
            at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
            at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
            at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBy
pass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
            at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
        --- Inner Exception ---
        System.Net.WebException
        - Could not find file 'D:\download\ImageEditor.application'.
        - Source: System
        - Stack trace:
            at System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
            at System.Net.FileWebRequest.GetResponse()
            at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
        --- Inner Exception ---
        System.Net.WebException
        - Could not find file 'D:\download\ImageEditor.application'.
        - Source: System
        - Stack trace:
            at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
            at System.Net.FileWebRequest.GetResponseCallback(Object state)
        --- Inner Exception ---
        System.IO.FileNotFoundException
        - Could not find file 'D:\download\ImageEditor.application'.
        - Source: mscorlib
        - Stack trace:
            at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
            at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
            at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
            at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
            at System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
            at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)

COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available.
uupah5
Cytat(Fifi209 @ 23.06.2011, 02:44:53 ) *
Witam, od pewnego czasu zabierałem się za napisanie programu, który w łatwy sposób umożliwi mi masową zmianę jakości zdjęć.
Szukałem narzędzia, które byłoby proste i spełniało dokładnie tą jedną funkcję - nie znalazłem.

ImageMagick - czego mu brakuje?
Fifi209
Cytat(uupah5 @ 23.06.2011, 12:40:18 ) *
ImageMagick - czego mu brakuje?

Jest to biblioteka PHP o ile dobrze pamiętam. wink.gif

@edit
Problem projektu postaram się szybko rozwiązać i wrzucę na nowo.

@edit2
Poprawiłem link, teraz powinno działać wszystko. ;]
Cypherq
Źle pamiętasz, biblioteka ImageMagick daje chyba tylko dostęp do API zainstalowanego wcześniej zestawu.
Fifi209
Nie zmienia to faktu, że jako biblioteka PHP występuje - więc pamiętam dobrze.

Poza tym, jakbym miał to zrobić za pomocą samego ImageMagick?
thek
Ech fifi... Programy desktopowe bez problemu robią to co opisujesz, wystarczy tylko nieco poczytać dokumentację. Ja robię to od lat w darmowym IrfanView. Opcja Batch lub skrótem B i pogrzebanie w opcjach Zaawansowanych: zmienia nazwy (według wzorca), kolorystykę, kompresję, crop i masę innych. Wszystko w trybie wsadowym.
Fifi209
thek, nie chciałem kombajnu, nie chciałem konsoli, nie chciałem php, miało być prosto dla laika (np. moja dziewczyna, mama)
thek
W irfanie to jest naprawdę proste. Same wyklikiwanie lub suwakami zabawa. Zresztą sam zobacz. Jeśli używają już jakiejś przeglądarki obrazków to zerknij czy nie ma ona też tej opcji. Jeśli znają już interfejs to na bank szybko załapią co i jak. W sumie w Irfanie to kilka kliknięć:
B -> Wybrać fotki -> Wybrać katalog wynikowy -> Wybrać format wyjściowy i w zaawansowanych stopień kompresji lub jakość -> Start

Walnąć nawet i 1000 fotek sobie mogą oraz iść zrobić kawę. Nawet pokazanie im co i jak to góra minutka lub dwie.
kilab
@thek, chciałbym wykorzystać temat i poruszyć kwestię jakości obrazów wynikowych przy przetwarzaniu wsadowym w Irfanie.
Miniaturka utworzona ręcznie (zmień rozmiar):

Miniaturka utworzona przy przetwarzaniu wsadowym:


Jak widać, drugi obraz jest jakby poszarpany. Pytanie dlaczego? W obu przypadkach używałem takiej samej kompresji. wstydnis.gif
Fifi209
thek temat sprowadził się nie do oceny a do offtopicu na temat jak to można załatwić inaczej - nie to miałem na celu.

Tutaj też mam prosty interfejs, jest tylko to co potrzebne, nie trzeba instrukcji obsługi ani nawet 2 minut na tłumaczenie. Wybierasz katalog, zaznaczasz co chcesz, klikasz pomniejsz i idziesz zrobić kawę.
elektrrrus
Lepszą jakość subiektywnie oczwyiście oferuje xnview. Równie prostszy jak nie prostszy w obsłudze.
Cypherq
Cytat(Fifi209 @ 23.06.2011, 14:22:44 ) *
Nie zmienia to faktu, że jako biblioteka PHP występuje - więc pamiętam dobrze.

Poza tym, jakbym miał to zrobić za pomocą samego ImageMagick?


Nie chcę sie kłócić z kolegą z tego samego miasta, ale biblioteka ImageMagick dla PHP jest tylko interfejsem, który korzysta z samego pakietu i bez niego nic nie zrobi. Nie występuje jako biblioteka do PHP tylko PHP ma bibliotekę, która pozwala jej uzywać smile.gif

IrfanView to była moja pierwsza myśl Thek, ale mimo wszystko nie uznałbym poprawiania w nim zdjęć za proste dla komputerowego lajka.
Fifi209
Dwa posty wyżej prosiłem o skończenie offtopicu i zajęcie się "oceną" bo w takim dziale jesteśmy.
erix
Cytat
Poza tym, jakbym miał to zrobić za pomocą samego ImageMagick?

O, ktoś tu chyba nie zorientował się wcześniej w temacie? wink.gif Z poziomu mogrify/convert jesteś w stanie zdziałać cuda. wink.gif A dużo łatwiej jest zrobić nakładkę niż pisać coś od zera. wink.gif

Co do opinii:
  • dlaczego .net?
  • dlaczego tylko "przeglądaj" i "konwertuj"?


Nie wynajduj koła na nowo. wink.gif Zrób plik wsadowy z poleceniami dla ImageMagick i wyjdzie to samo. Ba, nawet prościej, bo jeśli prawidłowo parametry skonstruujesz, to wystarczy jedynie przeciągnąć obrazki na ikonkę pliku wsadowego.

podzielone: Temat: flame NET
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.