Jak przyciąć plik JPG bez ponownej kompresji?

13

Czy można przyciąć obraz JPG bez utraty jakości / ponownej kompresji pozostałej części obrazu?

Dan Stevens
źródło
Nie sądzę, że przycięcie obrazu traci jego jakość.
ekclone
2
Nie w sobie. Jeśli jednak edytor obrazów, którego używasz, nie jest wystarczająco inteligentny, jeśli chodzi o zapisanie przyciętego obrazu, może z łatwością ponownie skompresować już skompresowany obraz, co byłoby niepotrzebne i spowodowałoby utratę obrazu. Zastanawiam się, czy można tego uniknąć.
Dan Stevens
1
Czy możesz mi powiedzieć, jakiego oprogramowania używasz? do edycji obrazu
ekclone

Odpowiedzi:

5

FreeVImager może to zrobić z ładnym GUI. Bezstratne menu przycinania Bezstratna operacja uprawy

Może także wykonywać bezstratne obracanie plików JPEG (obroty o 90 stopni są bezstratne). To FOSS, więc jeśli korzystasz z Linuksa, warto kupić Wine za jeden.

LogicDaemon
źródło
Hmm ... Próbowałem tego i obecna wersja pasuje do twojej ilustracji. Ale po przesunięciu prostokąta do pożądanej pozycji nie mogę znaleźć kontrolki „akceptuj” lub „gotowe”.
JDługosz
@ JDługosz wystarczy nacisnąć Enter :) (wskazówka w wierszu stanu) Ponadto autor jest komunikatywny i chętnie odpowiada na e-maile. Możesz mu powiedzieć ;-)
LogicDaemon
1
Wow, dom mojej siostry w Stack Exchange :). Dzięki, jeśli korzystam z FreeVimager, mogę przycinać duże rozmiary jpg; jeśli używam GIMP, nie mogę tego zrobić.
Саша Черных
Ten program przyciąga dolną i prawą stronę do granic iMCU, mimo że jest niepotrzebny i restrykcyjny. IrfanView działał dla mnie lepiej.
mm201
10

Bezstratne kadrowanie obrazu JPEG jest możliwe przy użyciu aplikacji „jpegtran” dostarczanej z libjpeg; patrz https://en.wikipedia.org/wiki/Libjpeg .

Cytowanie z „man jpegtran” w systemie, w którym jest zainstalowany jpegtran:

.. przycinanie bezstratne jest ograniczone przez bieżący format JPEG: lewy górny róg wybranego regionu musi spaść na granicy iMCU [8 lub 16]. Jeśli nie dotyczy to podanych parametrów uprawy, po cichu przesuwamy lewy górny róg w górę i / lub w lewo, aby to zrobić, jednocześnie zwiększając wymiary regionu, aby utrzymać dolny prawy róg uprawy bez zmian. (Zatem obraz wyjściowy obejmuje co najmniej żądany region, ale może obejmować więcej.)

Za pomocą innego oprogramowania do edycji obrazów można zminimalizować utratę, upewniając się, że przycięty obszar ma wymiary, które są wielokrotnościami 8 i że jest umieszczony z przesunięciami będącymi wielokrotnością liczby 8 (lub 16, jeśli kolory były podpróbkowane) z górnego lewego rogu oryginalny obraz, a „jakość” kompresji jest taka sama jak oryginalnego obrazu.

Glenn Randers-Pehrson
źródło
Wiki mówi „kadrowanie na granicach bloku obrazu (co 8 × 8 lub 16 × 16 pikseli)”. Czy narzędzie ogranicza Cię do tych granic, aby to umożliwić? I odgadnąć z notatki o łagodzeniu lossage w innych programach, że odpowiedź brzmi „tak” (?)
Yorik
1
Czasami wielokrotność musi wynosić 16 zamiast 8. JPEG pozwala na podpróbkowanie informacji o kolorze, co oznacza, że ​​bloki 8x8 dla tych składników koloru faktycznie pokryją 16x16 pikseli.
Mark Ransom,
1
@ MarkRansom racja, dzięki. Rozszerzyłem odpowiedź, by wspomnieć „lub 16”
Glenn Randers-Pehrson,
Jak ustalić, czy iMCU ma w systemie Linux 8 czy 16?
Luis A. Florit
@ LuisA.Florit możesz uruchomić ImageMagick „Ident -verbose” lub inne narzędzie egzaminacyjne JPEG i poszukać „czynników próbkowania”.
Glenn Randers-Pehrson
3

Irfanview ma bezstratne funkcje przycinania i obracania JPG:

wprowadź opis zdjęcia tutaj

Synetech
źródło
Jest to dostępne w menu za pomocą Opcje -> JPG Lossless Crop ... (PlugIn).
Alan L
0

Jeśli korzystasz z programu Photoshop®, nie sądzę, że obraz kompresuje się po przycięciu. Kompresja ma miejsce po ponownym zapisaniu dokumentu jako JPG. Zawsze najlepiej jest zacząć od najwyższego bezstratnego formatu nieskompresowanego obrazu, takiego jak .NEF, .BMP ... inne (?) Jak to się mówi, kupa poop out.

DizaBlah
źródło
Nie sądzę, że jest tak, jak myślisz. Myślę, że Photoshop nie może uprawiać bez rekompresji.
Royi,