Total Image Converter X to właściwe rozwiązanie do instalacji na serwerach webowych.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Image Converter X to serwerowy SDK, który konwertuje TIFF, JPEG, PNG, BMP, PSD, WebP, RAW (NEF, CR2, CR3, ARW, ORF, RAF, DNG i inne) oraz ponad 35 innych formatów obrazów — bez zewnętrznych pakietów kodeków ani frameworków graficznych na serwerze. Działa w trybie headless: bez interfejsu graficznego, bez okien dialogowych, bez wyskakujących komunikatów. Total Image Converter X jest dostarczany zarówno z plikiem binarnym wiersza poleceń, jak i z interfejsem ActiveX/COM, dzięki czemu integruje się z ASP, PHP, .NET, Pythonem, Ruby, Javą oraz dowolnym innym backendem obsługującym COM. Pełna lista obsługiwanych formatów obrazów:
Program przetwarza obrazy w locie. Nie są potrzebne żadne pliki pośrednie. Wielowątkowy silnik konwersji maksymalizuje wydajność na serwerach wielordzeniowych.
Wysoka prędkość konwersji i przetwarzanie wsadowe sprawiają, że proces jest prosty i pozbawiony nudy. Wypróbuj za darmo (30-dniowy okres próbny, bez ograniczeń) i przekonaj się, że naprawdę warto.
Niektóre z aktualnie obsługiwanych konwersji formatów plików:
|
|
|
Agenci LLM (Claude, ChatGPT, Cursor, Cline) i frameworki retrieval (LangChain, LlamaIndex, Haystack) nie czytają pikseli — czytają tekst. Total Image Converter X uruchamia OCR na wsadach TIFF, JPEG, PNG, BMP, wielostronicowych TIFF, PSD, WebP i RAW oraz zapisuje rozpoznany tekst do GitHub-Flavored Markdown z ustrukturyzowanym frontmatterem i opcjonalnym sidecarem zgodnym z Doclingiem, dzięki czemu zeskanowane dokumenty i zrzuty ekranu trafiają do Twojego vector store jako przeszukiwalny tekst z kotwicami stron i wskazówkami układu — a nie jako nieprzezroczyste blob-y binarne.
Co otrzymujesz, gdy wybierzesz wyjście Markdown:
source_file, format (MIME), page_count, ocr_language, ocr_confidence_avg, dpi, przestrzeń barwna (sRGB/CMYK), generator, created i binary_hash do śledzenia pochodzenia
.docling.json — JSON w schemacie Docling z prostokątami obejmującymi tabele, kotwicami stron, poziomami pewności OCR per region, metadanymi EXIF dla zdjęć z aparatu oraz tablicą chunks_hint czytelną dla Twojego splittera
To jest CoolUtils RAG Adapter — ujednolicony kontrakt Markdown współdzielony przez każdy produkt Total Converter X. Pełna specyfikacja, przykładowe .md + .docling.json oraz fragmenty integracji znajdują się na stronie Coolutils Converter X — RAG Adapter.
(zawiera 30-dniowy DARMOWY okres próbny)
(tylko $159.90)
string src = @"C:\test\Source.tiff";
string dest = @"C:\test\Dest.jpg";
var cnv = new ImageConverterX();
cnv.Convert(src, dest, "-cJPG -log c:\\test\\Image.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\ImageConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.tiff";
var outPath = Path.GetTempFileName() + ".jpg";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{srcPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("ImageConverter.ImageConverterX")
C.Convert "c:\source.bmp", "c:\dest.tif", "-cTIFF -log c:\Image.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("ImageConverter.ImageConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.tiff", "C:\www\ASP", "-cpdf -log c:\Image.log")
set C = nothing
$src="C:\\test\\test.jpg";
$dest="C:\\test\\test.gif";
if (file_exists($dest)) unlink($dest);
$c= new COM("ImageConverter.ImageConverterX");
$c->convert($src,$dest, "-c gif -log c:\\test\\Image.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('ImageConverter.ImageConverterX')
src = "C:\\test\\test.tiff"
dest = "C:\\test\\test.jpg"
c.convert(src, dest, "-c JPG -log c:\\test\\Image.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("ImageConverter.ImageConverterX")
src = "C:\\test\\test.tiff"
dest = "C:\\test\\test.jpg"
c.convert(src, dest, "-c JPG -log c:\\test\\Image.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('ImageConverter.ImageConverterX');
c.Convert('c:\test\source.tiff', 'c:\test\dest.jpg', '-cJPG -log c:\test\Image.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("ImageConverter.ImageConverterX");
c.Convert("C:\\test\\source.tiff", "C:\\test\\dest.jpg", "-c JPG");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.tiff"; my $dest = "C:\\test\\test.jpg"; my $c = CreateObject Win32::OLE 'ImageConverter.ImageConverterX'; $c->convert($src, $dest, "-c JPG -log c:\\test\\Image.log"); print $c->ErrorMessage if -e $dest;
"Przyjmujemy grafiki klientów w każdym możliwym formacie: PSD z warstwami, CMYK TIFF do druku offsetowego, PNG z przezroczystością, czasem RAW od fotografów. Total Image Converter X normalizuje wszystko do CMYK TIFF gotowego do druku oraz do JPEG jako podglądu webowego w jednym pipelinie. Pięć lat na serwerach kodujących, żadnych niespodzianek. Wydajność to około 40 obrazów na sekundę na naszym sprzęcie dla wejścia 24-megapikselowego."
Erik W.
Senior Backend Developer at a print-on-demand platform
"Pośrednicy wgrywają zdjęcia ofert prosto z telefonów i lustrzanek — HEIC, RAW, przerośnięte JPEG, wszystko po kolei. Total Image Converter X zmienia rozmiar do trzech responsywnych wariantów i zapisuje WebP dla strony publicznej. Wrapper .NET wpina się w nasz istniejący pipeline; wyjście -log to jedna ustrukturyzowana linia na plik, łatwa do wysłania do naszego agregatora logów. Headless na Windows Server Core, bez Office, bez Photoshopa, bez niespodzianek licencyjnych."
Anjali K.
DevOps Engineer at a real-estate listings SaaS
"Archiwizujemy zeskanowane dokumentacje pacjentów jako wielostronicowe pliki TIFF i musimy publikować kopie PDF dla portalu klinicznego. Total Image Converter X niezawodnie obsługuje stosy 600-DPI TIFF w skali szarości, nakłada znaki wodne potrzebne nam do śladu audytu i produkuje PDF/A zgodny z normą ISO. CLI jest deterministyczne między uruchomieniami, co ma znaczenie dla łańcucha kontroli. Pięć lat nienadzorowanych nocnych konwersji, żadnych awarii, które moglibyśmy zrzucić na konwerter."
Paolo M.
CTO at a medical-imaging archive
"Wbudowaliśmy Total Image Converter X w nasz produkt do zarządzania zdjęciami w ramach Royalty-Free License. Jednorazowa opłata za projekt była ułamkiem tego, czego komercyjne wrappery oparte na ImageMagick chciały za prawa do redystrybucji. Nasz instalator dostarcza i rejestruje ActiveX, nasza aplikacja wywołuje go bezpośrednio, użytkownicy końcowi widzą tylko nasze UI. Ograniczenie 32-bitowego ActiveX kosztowało nas kilka dni przerobienia pipeline'u, ale wsparcie szybko odpowiadało, gdy pytaliśmy o obejścia."
Greta H.
Independent Software Vendor
"Nasi sprzedawcy wgrywają zdjęcia produktów w JPEG, PNG i sporadycznie PSD z osadzonymi warstwami. Potrzebujemy czystego WebP w trzech rozmiarach plus paska miniatur dla każdego produktu. Total Image Converter X daje nam deterministyczne wyjście: to samo wejście, te same flagi, identyczne co do bitu bajty na dysku. Tego potrzebujemy do logiki unieważniania pamięci podręcznej CDN. Stabilny i przewidywalny przez cztery lata produkcyjnego użytku."
Hideo T.
Lead .NET Developer at an e-commerce platform
Zaktualizowano Mon, 04 May 2026
(tylko $159.90)
new COM("ImageConverter.ImageConverterX") w PHP, new ImageConverterX() w .NET, win32com.client.Dispatch w Pythonie, WIN32OLE.new w Ruby. Alternatywnie, plik wiersza poleceń ImageConverterX.exe może być wywoływany z dowolnego procesu, harmonogramu lub skryptu powłoki. Bezpośrednie przesyłanie strumieniowe PDF za pomocą ConvertToStream jest również dostępne dla odpowiedzi webowych ASP/PHP.-r <WxH> do zmiany rozmiaru (bezwzględnej lub procentowej), -Rotate <90|180|270> do obrotu, -Flip Horizontal|Vertical do odbicia lustrzanego oraz -c <format> dla formatu wyjściowego. Znaki wodne: -WatermarkText "Confidential" -WatermarkColor 0xFF0000 dla tekstu lub -WatermarkImage logo.png dla nakładki graficznej. Głębia kolorów: -bpp 1|8|24. Konwersja CMYK do RGB jest automatyczna, gdy format wyjściowy nie obsługuje CMYK.-MultipageTIFF, aby połączyć folder pojedynczych obrazów w jeden plik TIFF, oraz -combine, aby scalić wiele obrazów w jeden plik PDF. -Recurse przechodzi przez podkatalogi; -kfs odzwierciedla strukturę folderów po stronie wyjściowej zamiast spłaszczać wszystko do jednego miejsca..md jako format wyjściowy, a konwerter uruchomi OCR na obrazie wejściowym (TIFF, JPEG, PNG, BMP, wielostronicowy TIFF, PSD, WebP, RAW) i zapisze rozpoznany tekst jako GitHub-Flavored Markdown. Wielostronicowe pliki TIFF i foldery obrazów są przetwarzane jako sekwencje dokumentów, gdzie każda strona staje się sekcją; wykryte tabele są zachowane jako tabele GFM, a nie spłaszczone do prozy. Blok YAML frontmatter zawiera source_file, page_count, ocr_language, średnią ocr_confidence, źródłowy dpi i przestrzeń kolorów oraz binarny hash. To część CoolUtils RAG Adapter — ten sam kontrakt Markdown jest współdzielony przez każdy produkt Total Converter X.binary_hash dla śledzenia pochodzenia oraz tablicę chunks_hint. Włącz za pomocą -Docling w wierszu poleceń. JSON jest niezależny od Markdown..md to zwykły GFM z blokiem YAML frontmatter, więc UnstructuredMarkdownLoader z LangChain, MarkdownReader z LlamaIndex, MarkdownToDocument z Haystack oraz narzędzia plików MCP w Claude Code odczytują go bezpośrednio. Ponieważ pewność OCR jest zapisana w sidecarze, konsumenci niżej w łańcuchu mogą wybrać usunięcie lub oznaczenie regionów o niskiej pewności przed osadzeniem. Dla Claude, ChatGPT lub dowolnego interfejsu czatu możesz wkleić Markdown do kontekstu bez zmian.ImageConverterX.exe "C:\scans\*.tif" "C:\rag\" -cMD -Docling -ocr -ocrlang eng -Recurse. -cMD wybiera Markdown; -Docling dodatkowo zapisuje sidecar .docling.json; -ocr włącza OCR; -ocrlang ustawia język OCR (użyj ciągów wielojęzycznych jak eng+rus dla skanów mieszanojęzycznych); -Recurse przechodzi podkatalogi. Wielostronicowe pliki TIFF są obsługiwane w jednym wywołaniu. Wynikowy Markdown jest gotowy do podziału na fragmenty, osadzenia i zindeksowania w dowolnym vector store.Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.