start working on NConvert

This commit is contained in:
Paddy Xu
2018-08-12 15:24:49 +03:00
parent 112f5409cf
commit ee6bca704d
28 changed files with 6412 additions and 327 deletions

View File

@@ -53,14 +53,12 @@ namespace QuickLook.Plugin.HtmlViewer
context.ViewerContent = _panel;
context.Title = Path.IsPathRooted(path) ? Path.GetFileName(path) : path;
_panel.Navigate(path);
_panel.LoadFile(path);
_panel.Dispatcher.Invoke(() => { context.IsBusy = false; }, DispatcherPriority.Loaded);
}
public void Cleanup()
{
GC.SuppressFinalize(this);
_panel?.Dispose();
_panel = null;
}

View File

@@ -72,20 +72,13 @@
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<Compile Include="WebpagePanel.cs" />
<Compile Include="WpfBrowserWrapper.cs" />
<Page Include="WebpagePanel.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="..\..\GitVersion.cs">
<Link>Properties\GitVersion.cs</Link>
</Compile>
<Compile Include="Plugin.cs" />
<Compile Include="Helper.cs" />
<Compile Include="WebpagePanel.xaml.cs">
<DependentUpon>WebpagePanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">

View File

@@ -0,0 +1,49 @@
// Copyright © 2017 Paddy Xu
//
// This file is part of QuickLook program.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.IO;
using System.Text;
using System.Windows.Controls;
using System.Windows.Threading;
using QuickLook.Common.Helpers;
namespace QuickLook.Plugin.HtmlViewer
{
public class WebpagePanel : WpfWebBrowserWrapper
{
public WebpagePanel()
{
Zoom = (int) (100 * DpiHelper.GetCurrentScaleFactor().Vertical);
}
public void LoadFile(string path)
{
if (Path.IsPathRooted(path))
path = Helper.FilePathToFileUrl(path);
Dispatcher.Invoke(() => { base.Navigate(path); }, DispatcherPriority.Loaded);
}
public void LoadHtml(string html)
{
var s = new MemoryStream(Encoding.UTF8.GetBytes(html ?? ""));
Dispatcher.Invoke(() => { base.Navigate(s); }, DispatcherPriority.Loaded);
}
}
}

View File

@@ -36,13 +36,14 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
private ImageMagickProvider _imageMagickProvider;
private int _lastEffecitvePreviousPreviousFrameIndex;
public APNGAnimationProvider(string path, Dispatcher uiDispatcher) : base(path, uiDispatcher)
public APNGAnimationProvider(string path, NConvert meta, Dispatcher uiDispatcher) : base(path, meta,
uiDispatcher)
{
var decoder = new APNGBitmap(path);
if (decoder.IsSimplePNG)
{
_imageMagickProvider = new ImageMagickProvider(path, uiDispatcher);
_imageMagickProvider = new ImageMagickProvider(path, meta, uiDispatcher);
return;
}

View File

@@ -20,7 +20,6 @@ using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Threading;
using QuickLook.Plugin.ImageViewer.Exiv2;
namespace QuickLook.Plugin.ImageViewer.AnimatedImage
{
@@ -40,7 +39,7 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
_animation = null;
}
private static AnimationProvider LoadFullImageCore(Uri path, Dispatcher uiDispatcher)
private static AnimationProvider LoadFullImageCore(Uri path, NConvert meta, Dispatcher uiDispatcher)
{
byte[] sign;
using (var reader =
@@ -52,11 +51,11 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
AnimationProvider provider;
if (sign[0] == 'G' && sign[1] == 'I' && sign[2] == 'F' && sign[3] == '8')
provider = new GifAnimationProvider(path.LocalPath, uiDispatcher);
provider = new GifAnimationProvider(path.LocalPath, meta, uiDispatcher);
else if (sign[0] == 0x89 && sign[1] == 'P' && sign[2] == 'N' && sign[3] == 'G')
provider = new APNGAnimationProvider(path.LocalPath, uiDispatcher);
provider = new APNGAnimationProvider(path.LocalPath, meta, uiDispatcher);
else
provider = new ImageMagickProvider(path.LocalPath, uiDispatcher);
provider = new ImageMagickProvider(path.LocalPath, meta, uiDispatcher);
return provider;
}
@@ -72,7 +71,7 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
new UIPropertyMetadata(null, AnimationUriChanged));
public static readonly DependencyProperty MetaProperty =
DependencyProperty.Register("Meta", typeof(Meta), typeof(AnimatedImage));
DependencyProperty.Register("Meta", typeof(NConvert), typeof(AnimatedImage));
public int AnimationFrameIndex
{
@@ -86,9 +85,9 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
set => SetValue(AnimationUriProperty, value);
}
public Meta Meta
public NConvert Meta
{
private get => (Meta) GetValue(MetaProperty);
private get => (NConvert) GetValue(MetaProperty);
set => SetValue(MetaProperty, value);
}
@@ -100,7 +99,7 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
//var thumbnail = instance.Meta?.GetThumbnail(true);
//instance.Source = thumbnail;
instance._animation = LoadFullImageCore((Uri) ev.NewValue, instance.Dispatcher);
instance._animation = LoadFullImageCore((Uri) ev.NewValue, instance.Meta, instance.Dispatcher);
instance.BeginAnimation(AnimationFrameIndexProperty, instance._animation.Animator);
instance.AnimationFrameIndex = 0;

View File

@@ -25,9 +25,10 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
{
internal abstract class AnimationProvider : IDisposable
{
protected AnimationProvider(string path, Dispatcher uiDispatcher)
protected AnimationProvider(string path, NConvert meta, Dispatcher uiDispatcher)
{
Path = path;
Meta = meta;
Dispatcher = uiDispatcher;
}
@@ -35,6 +36,8 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
public string Path { get; }
public NConvert Meta { get; }
public Int32AnimationUsingKeyFrames Animator { get; protected set; }
public abstract void Dispose();

View File

@@ -31,7 +31,8 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage
private BitmapSource _frameSource;
private bool _isPlaying;
public GifAnimationProvider(string path, Dispatcher uiDispatcher) : base(path, uiDispatcher)
public GifAnimationProvider(string path, NConvert meta, Dispatcher uiDispatcher) : base(path, meta,
uiDispatcher)
{
_frame = (Bitmap) Image.FromFile(path);
_frameSource = _frame.ToBitmapSource();

View File

@@ -20,54 +20,32 @@ using System.Threading.Tasks;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Threading;
using ImageMagick;
using QuickLook.Plugin.ImageViewer.Exiv2;
namespace QuickLook.Plugin.ImageViewer.AnimatedImage
{
internal class ImageMagickProvider : AnimationProvider
{
private readonly string _path;
private readonly BitmapSource _thumbnail;
public ImageMagickProvider(string path, Dispatcher uiDispatcher) : base(path, uiDispatcher)
public ImageMagickProvider(string path, NConvert meta, Dispatcher uiDispatcher) : base(path, meta, uiDispatcher)
{
_path = path;
_thumbnail = new Meta(path).GetThumbnail(true);
Animator = new Int32AnimationUsingKeyFrames();
Animator.KeyFrames.Add(new DiscreteInt32KeyFrame(0,
KeyTime.FromTimeSpan(TimeSpan.Zero))); // thumbnail/full image
if (_thumbnail != null)
Animator.KeyFrames.Add(new DiscreteInt32KeyFrame(1,
KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0.20)))); // full image
}
public override Task<BitmapSource> GetRenderedFrame(int index)
{
// the first image is always returns synchronously.
if (index == 0 && _thumbnail != null) return new Task<BitmapSource>(() => _thumbnail);
return new Task<BitmapSource>(() =>
{
using (var image = new MagickImage(_path))
using (var ms = Meta.GetPngStream())
{
try
{
image.AddProfile(ColorProfile.SRGB);
}
catch (MagickResourceLimitErrorException)
{
// https://github.com/xupefei/QuickLook/issues/292: ColorspaceColorProfileMismatch
}
var img = new BitmapImage();
img.BeginInit();
img.StreamSource = ms;
img.CacheOption = BitmapCacheOption.OnLoad;
img.EndInit();
img.Freeze();
image.Density = new Density(Math.Floor(image.Density.X), Math.Floor(image.Density.Y));
image.AutoOrient();
var bs = image.ToBitmapSource();
bs.Freeze();
return bs;
return img;
}
});
}

View File

@@ -1,48 +0,0 @@
// Copyright © 2017 Paddy Xu
//
// This file is part of QuickLook program.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System.Windows;
using ImageMagick;
using QuickLook.Plugin.ImageViewer.Exiv2;
namespace QuickLook.Plugin.ImageViewer
{
internal static class ImageFileHelper
{
internal static Size GetImageSize(string path, Meta meta)
{
var size = meta.GetSize();
if (!size.IsEmpty)
return size;
try
{
var info = new MagickImageInfo(path);
if (meta.GetOrientation() == OrientationType.RightTop ||
meta.GetOrientation() == OrientationType.LeftBotom)
return new Size {Width = info.Height, Height = info.Width};
return new Size {Width = info.Width, Height = info.Height};
}
catch (MagickException)
{
return Size.Empty;
}
}
}
}

View File

@@ -34,7 +34,6 @@ using QuickLook.Common.Annotations;
using QuickLook.Common.ExtensionMethods;
using QuickLook.Common.Helpers;
using QuickLook.Common.Plugin;
using QuickLook.Plugin.ImageViewer.Exiv2;
namespace QuickLook.Plugin.ImageViewer
{
@@ -50,7 +49,7 @@ namespace QuickLook.Plugin.ImageViewer
private bool _isZoomFactorFirstSet = true;
private DateTime _lastZoomTime = DateTime.MinValue;
private double _maxZoomFactor = 3d;
private Meta _meta;
private NConvert _meta;
private Visibility _metaIconVisibility = Visibility.Visible;
private double _minZoomFactor = 0.1d;
private BitmapScalingMode _renderMode = BitmapScalingMode.HighQuality;
@@ -85,7 +84,7 @@ namespace QuickLook.Plugin.ImageViewer
viewPanel.ManipulationDelta += ViewPanel_ManipulationDelta;
}
internal ImagePanel(ContextObject context, Meta meta) : this()
internal ImagePanel(ContextObject context, NConvert meta) : this()
{
_context = context;
Meta = meta;
@@ -227,7 +226,7 @@ namespace QuickLook.Plugin.ImageViewer
}
}
public Meta Meta
public NConvert Meta
{
get => _meta;
set
@@ -256,18 +255,18 @@ namespace QuickLook.Plugin.ImageViewer
private void ShowMeta()
{
textMeta.Inlines.Clear();
Meta.GetSummary().ForEach(m =>
Meta.GetExif().ForEach(m =>
{
if (string.IsNullOrWhiteSpace(m.Key) || string.IsNullOrWhiteSpace(m.Value))
if (string.IsNullOrWhiteSpace(m.Item1) || string.IsNullOrWhiteSpace(m.Item2))
return;
if (m.Key == "File name" || m.Key == "File size" || m.Key == "MIME type" || m.Key == "Exif comment"
|| m.Key == "Thumbnail" || m.Key == "Exif comment")
if (m.Item1 == "File name" || m.Item1 == "File size" || m.Item1 == "MIME type" || m.Item1 == "Exif comment"
|| m.Item1 == "Thumbnail" || m.Item1 == "Exif comment")
return;
textMeta.Inlines.Add(new Run(m.Key) {FontWeight = FontWeights.SemiBold});
textMeta.Inlines.Add(new Run(m.Item1) {FontWeight = FontWeights.SemiBold});
textMeta.Inlines.Add(": ");
textMeta.Inlines.Add(m.Value);
textMeta.Inlines.Add(m.Item2);
textMeta.Inlines.Add("\r\n");
});
textMeta.Inlines.Remove(textMeta.Inlines.LastInline);

View File

@@ -0,0 +1,196 @@
// Copyright © 2018 Paddy Xu
//
// This file is part of QuickLook program.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows;
namespace QuickLook.Plugin.ImageViewer
{
public enum Orientation
{
Undefined = 0,
TopLeft = 1,
TopRight = 2,
BottomRight = 3,
BottomLeft = 4,
LeftTop = 5,
RightTop = 6,
RightBottom = 7,
Leftbottom = 8
}
public class NConvert
{
private static readonly string NConvertPath =
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "NConvert\\nconvert.exe");
private readonly string _path;
private List<Tuple<string, string>> _metaBasic = new List<Tuple<string, string>>();
private List<Tuple<string, string>> _metaExif = new List<Tuple<string, string>>();
public NConvert(string path)
{
_path = path;
GetMeta();
}
public List<Tuple<string, string>> GetExif()
{
return _metaExif;
}
public MemoryStream GetPngStream()
{
var temp = Path.GetTempFileName();
File.Delete(temp);
//
var d = RunInternal($"-quiet -embedded_jpeg -out png -o \"{temp}\" \"{_path}\"", 10000);
var ms = new MemoryStream(File.ReadAllBytes(temp));
File.Delete(temp);
return ms;
}
public Size GetSize()
{
var ws = _metaBasic.Find(t => t.Item1 == "Width")?.Item2;
var hs = _metaBasic.Find(t => t.Item1 == "Height")?.Item2;
int.TryParse(ws, out var w);
int.TryParse(hs, out var h);
if (w == 0 || h == 0)
return Size.Empty;
switch (GetOrientation())
{
case Orientation.LeftTop:
case Orientation.RightTop:
case Orientation.RightBottom:
case Orientation.Leftbottom:
return new Size(h, w);
default:
return new Size(w, h);
}
}
public Orientation GetOrientation()
{
var o = _metaExif.Find(t => t.Item1 == "Orientation")?.Item2;
if (!string.IsNullOrEmpty(o))
{
return (Orientation) int.Parse(o.Substring(o.Length - 2, 1));
}
return Orientation.TopLeft;
}
private void GetMeta()
{
var lines = RunInternal($"-quiet -fullinfo \"{_path}\"")
.Replace("\r\n", "\n")
.Split('\n');
var crtDict = _metaBasic;
for (var i = 0; i < lines.Length; i++)
{
var segs = lines[i].Split(':');
if (segs.Length != 2)
continue;
var k = segs[0];
var v = segs[1];
if (k == "EXIF")
crtDict = _metaExif;
if (k.StartsWith(" "))
{
if (crtDict == _metaBasic) // trim all 4 spaces
{
if (!string.IsNullOrWhiteSpace(v))
crtDict.Add(new Tuple<string, string>(k.Trim(), v.Trim()));
}
else // in exif
{
if (!string.IsNullOrWhiteSpace(v))
{
var kk = k.Substring(0, k.Length - 8).Trim();
crtDict.Add(new Tuple<string, string>(kk, v.Trim())); // -8 to remove "(0xa001)"
}
}
}
else if (k.StartsWith(" "))
{
crtDict.Add(new Tuple<string, string>(k.Trim(), string.Empty));
}
}
}
private string RunInternal(string arg, int timeout = 2000)
{
try
{
string result;
using (var p = new Process())
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = NConvertPath;
p.StartInfo.Arguments = arg;
p.Start();
result = p.StandardOutput.ReadToEnd();
p.WaitForExit(timeout);
return result;
}
}
catch (Exception)
{
return string.Empty;
}
}
}
internal static class Extensions
{
public static byte[] ReadToEnd(this Stream stream)
{
using (var ms = new MemoryStream())
{
var buffer = new byte[8192];
int count;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, count);
}
return ms.ToArray();
}
}
}
}

View File

@@ -0,0 +1,508 @@
------------------------------------------
NConvert v7.20
XnView v2.45
Copyright (c) 1991-2018 Pierre-E Gougelet
All Rights Reserved.
E-Mail: webmaster@xnview.com
WWW: http://www.xnview.com
------------------------------------------
Supported formats Extension Remarks
======================================================================================================
[max] 3DS Max thumbnail max
[bpr] AAA logo bpr
[ace] ACE texture ace
[adex] ADEX img rle
[aim] AIM Grey Scale ima im
[arf] ARF arf
[att] AT&T Group 4 att
[sst] AVHRR Image sst
[awd] AWD awd Windows only, Plugin required
[apx] Ability Photopaint Image apx
[acc] Access g4 acc
[aces] Aces200 ace
[acorn] Acorn Sprite acorn
[adt] AdTech perfectfax adt
[ai] Adobe Illustrator ai
[aphp] Adobe PhotoParade (images) php
[psd] Adobe Photoshop psd
[ocp] Advanced Art Studio ocp art pic
[anv] AirNav anv
[frm2] Album b<>b<EFBFBD> frm
[alias] Alias Image File pix als alias
[abmp] Alpha Microsystems BMP bmp
[2d] Amapi 2d
[ami] Amica Paint ami [b]
[iff] Amiga IFF iff blk
[info] Amiga icon info
[cpc] Amstrad Cpc Screen cpc
[atk] Andrew Toolkit raster object atk
[hdru] Apollo HDRU hdru hdr gn
[arcib] ArcInfo Binary hdr
[artdir] Art Director art
[art] Artisan art
[a64] Artist 64 a64
[arn] Astronomical Research Network arn
[pcp] Atari grafik pcp
[aurora] Aurora sim
[afx] Auto F/X afx
[dwg] AutoCAD DWG dwg Windows only, Third Party Plugin required (http://www.cadsofttools.com)
[dxf] AutoCAD DXF dxf Windows only, Third Party Plugin required (http://www.cadsofttools.com)
[cadc] Autocad CAD-Camera img
[fli] Autodesk Animator fli flc
[qcad] Autodesk QuickCAD thumbnail cad
[skf] Autodesk SKETCH thumbnail skf
[skp] Autodesk SketchUp component skp
[gm] Autologic gm gm2 gm4
[epa] Award Bios Logo epa
[ssp] Axialis Screensaver (images) ssp
[b3d] B3D (images) b3d
[bfli] BFLI bfl bfli fli flp afl
[bias] BIAS FringeProcessor msk img raw flt
[bmf] BMF bmf Windows only, Plugin required
[kap] BSB/KAP kap
[byusir] BYU SIR sir
[bmg] Bert's Coloring bmg ibg
[bfx] Bfx Bitware bfx
[biorad] Bio-Rad confocal pic
[pi] Blazing Paddles pi
[bob] Bob Raytracer bob
[bdr] Brender pix
[brk] Brooktrout 301 brk 301 brt
[uni] Brother Fax uni
[til] Buttonz & Tilez texture til
[cals] CALS Raster cal cals gp4 mil
[cdu] CDU Paint cdu
[cgm] CGM cgm Windows only, Third Party Plugin required (http://www.cadsofttools.com)
[dsi] CImage dsi
[cmu] CMU Window Manager cmu
[cp8] CP8 256 Gray Scale cp8
[crg] Calamus cpi crg
[cr2] Canon EOS-1D Mark II RAW cr2
[can] Canon Navigator Fax can
[crw] Canon PowerShot crw
[mbig] Cartes Michelin big
[cam] Casio QV-10/100 Camera cam
[cmt] Chinon ES-1000 digital camera cmt
[cip] Cisco IP Phone cip
[cloe] Cloe Ray-Tracer clo cloe
[rix] ColoRIX rix sci scx sc?
[wlm] CompW wlm Windows only, Plugin required
[gif] CompuServe GIF gif giff
[ce] Computer Eyes, Digital Vision ce
[ce1] ComputerEyes Raw ce1 ce2
[icd] Core IDC idc
[cdr] Corel Draw Bitmap (preview) cdr
[cpat] Corel Draw Pattern (preview) pat
[cbmf] Corel Flow (preview) bmf
[cmx] Corel Metafile Exchange (preview) cmx
[cpt] Corel PhotoPaint 6.0 cpt
[cncd] CoverDesigner (images) ncd
[cnct] CoverDesigner Template (images) nct
[cart] Crayola art
[dbw] DBW Render
[map] DIV Game Studio Map map
[fpg] DIV Game Studio Multi Map fpg
[dkb] DKB Ray-Tracer dis
[dpx] DPX dpx
[dali] Dali Raw sd0 sd1 sd2
[dcpy] Datacopy img
[degas] Degas & Degas Elite pi1 pc1 pi2 pc2 pi3 pc3 pi4 pi5 pi6
[lbm] Deluxe Paint, Electronic Arts lbm ilbm
[dicom] Dicom dcm acr dic dicom dc3
[tdim] Digital F/X tdim
[gem] Digital Research (GEM Paint) img gem
[dds] Direct Draw Surface dds
[dcmp] Discorp CMP Image cmp
[djvu] DjVu djvu djv iw4 Windows only, Plugin required
[dol] DolphinEd dol
[doodle] Doodle Atari doo
[dd] Doodle C64 dd
[jj] Doodle C64 (Compressed) jj
[cut] Dr Halo cut
[drz] Draz Paint drz
[fsh] EA Sports FSH fsh
[epi] EPS Interchange Format epi ept Ghostscript needed, available on http://www.cs.wisc.edu/~ghost/
[eri] ERI-chan (Entis Rasterized Image) eri Windows only, Plugin required
[esmp] ESM Software Pix pix
[ecc] Ecchi ecc
[tile] Eclipse tile
[c4] Edmics c4
[trup] Egg Paint trp
[eidi] Electric Image ei eidi
[bmc] Embroidery bmc
[eps] Encapsulated Postscript ps eps
[epsp] Encapsulated Postscript(Preview) eps
[esm] Enhance Simplex esm
[ecw] Enhanced Compressed Wavelet ecw Windows only, Plugin required
[eif] Eroiica eif
[efx] Everex Everfax efx ef3
[tdi] Explore (TDI) & Maya iff tdi
[fif] FIF (Iterated System) fif Windows only, Plugin required
[fit] FIT fit
[fpt] Face Painter fpt
[pwc] Fast Piecewise-constant pwc Windows only, Plugin required
[fax] Fax Group 3 g3 fax
[fmf] Fax man fmf
[fcx] Faxable PCX fcx
[ftf] Faxable TIFF ftf
[fmap] Fenix Map map
[ffpg] Fenix Multi Map fpg
[fmag] FileMagic mag
[fi] Flash Image fi
[ncy] FlashCam Frame ncy
[ncy] FlashCam frame ncy
[fpx] FlashPix Format fpx Windows only, Plugin required
[fits] Flexible Image Transport System fts fits fit
[bsg] Fontasy Grafik bsg
[f96] Fremont Fax96 f96
[fx3] Fugawi Map fx3
[raf] Fuji S2 RAW raf
[fp2] Fun Painter II fp2 fun
[fpr] Fun Photor fpr
[fbm] Fuzzy bitmap fbm cbm
[g16] GRS16 g16
[gmf] Gamma Fax gmf
[geo] GeoPaint geo
[gfaray] Gfa Raytrace sul
[gih] GigaPaint Hi-res gih
[gig] GigaPaint Multi gig
[xcf] Gimp Bitmap xcf
[gbr] Gimp Brush gbr
[gicon] Gimp Icon ico
[gpat] Gimp Pattern pat
[god] GoDot 4bt 4bit clp
[gun] GunPaint gun ifl
[hdri] HDRI hdr hdri
[hf] HF hf
[grob] HP-48/49 GROB gro grb
[of] HP-49 OpenFire gro2 gro4
[hpgl] HPGL-2 hp hpg hgl plt hpgl prn prt spl Windows only, Third Party Plugin required (http://www.cadsofttools.com)
[hru] HRU hru
[hsi] HSI Raw raw
[mdl] Half-Life Model mdl
[jtf] Hayes JTFax jtf
[hpi] Hemera Photo Image hpi
[hta] Hemera Thumbs hta
[m8] Heretic II MipMap m8
[hed] Hi-Eddi hed
[hir] Hires C64 hir hbm
[lif] Homeworld Texture lif
[kps] IBM Kips kps
[pseg] IBM Printer Page Segment pse
[im5] IM5 (Visilog) im5
[imt] IMNET Image imt
[ioca] IOCA ica ioca mod
[iss] ISS iss
[icl] Icon Library icl
[icb] Image Capture Board icb
[miff] Image Magick file mif miff
[ish] Image Speeder ish
[cish] Image System (Hires) ish
[cism] Image System (Multicolor) ism
[rlc2] Image Systems RLC2 Graphic rlc
[ilab] ImageLab b&w b_w
[g3n] Imaging Fax g3n
[imgt] Imaging Technology img
[img] Img Software Set img
[iim] Inshape iim
[ciph] InterPaint (Hires) iph
[cipt] InterPaint (Multicolor) ipt
[ingr] Intergraph Format itg cit rle
[iimg] Interleaf iimg
[ct] Iris CT ct
[iris] Iris Graphics iris
[wic] J Wavelet Image Codec wic Windows only, Plugin required
[jbig] JBIG jbg bie jbig Windows only, Plugin required
[jb2] JBIG-2 jb2 Windows only, Plugin required
[*] JFIF based file
[jpeg] JPEG / JFIF jpg jpeg jif jfif J jpe
[mjpg] JPEG 8BIM header (Mac) jpg jpeg jif jfif J jpe Windows only, Plugin required
[jpc] JPEG-2000 Code Stream jpc Windows only, Plugin required
[jp2] JPEG-2000 JP2 File Format jp2 j2k jpx jpf Windows only, Plugin required
[jls] JPEG-LS jls Windows only, Plugin required
[jif] Jeff's Image Format jif
[jig] Jigsaw jig
[vi] Jovian VI vi
[jng] Jpeg Network Graphics jng Windows only, Plugin required
[btn] JustButtons animated bitmap btn
[kntr] KONTRON img
[viff] Khoros Visualization Image file vif viff xv
[kskn] KinuPix Skin thb
[cel] Kiss Cel cel
[koa] Koala Paint koa
[gg] Koala Paint (Compressed) gg
[cin] Kodak Cineon cin
[kdc] Kodak DC120 Digital Camera kdc
[k25] Kodak DC25 Camera k25
[pcd] Kodak Photo CD pcd
[dcr] Kodak Pro Digital RAW dcr
[kfx] Kofax Group 4 kfx
[kqp] Konica Camera File kqp
[lss] LSS16 lss 16
[lvp] LView Pro lvp
[lda] LaserData lda
[lwi] Light Work Image lwi
[lff] LucasFilm Format lff
[lcel] Lumena CEL cel
[ldf] LuraDocument Format ldf Windows only, Plugin required
[ldfjpm] LuraDocument.jpm Format jpm Windows only, Plugin required
[lwf] LuraWave Format lwf Windows only, Plugin required
[lwfjpc] LuraWave JPEG-2000 Code Stream jpc Windows only, Plugin required
[lwfjp2] LuraWave JPEG-2000 Format jp2 j2k jpx jpf Windows only, Plugin required
[mag] MAKIchan Graphics mag
[pzp] MGI Photosuite Project (images) pzp
[mgr] MGR bitmap mgr
[mtv] MTV Ray-Tracer mtv
[mac] Mac Paint mac mpnt macp pntg pnt paint
[icns] Mac icon icns
[pict] Macintosh Quickdraw/Pict pic pict pict2 pct
[fff] Maggi Hairstyles & Cosmetics fff
[pd] Male MRI pd t1 t2
[fre] Male Normal CT fre
[mrf] Marks Russel File mrf
[411] Mavica 411
[mtx] Maw-Ware Textures mtx
[pdx] Mayura Draw pdx
[bld] MegaPaint bld
[mfrm] Megalux Frame frm
[pbt] Micro Dynamics MARS pbt
[mil] Micro Illustrator Uncompressed mil
[pp4] Micrografx Picture Publisher 4.0 pp4
[pp5] Micrografx Picture Publisher 5.0 pp5
[mic] Microsoft Image Composer mic
[msp] Microsoft Paint msp
[eyes] Microtek Eyestar img
[ipg] Mindjongg Format ipg
[mrw] Minolta DiMAGE RAW mrw
[mkcf] MonkeyCard pdb
[mklg] MonkeyLogo pdb
[mph] MonkeyPhoto mph
[sid] MrSid sid Windows only, Plugin required
[msx2] Msx 2 Screen sc2
[mng] Multiple Network Graphics mng
[mng2] Multiple Network Graphics mng
[ncr] NCR Image ncr
[nist] NIST ihdr pct
[nitf] National Imagery Transmission F. nitf
[car] NeoBook Cartoon car
[neo] Neochrome (ST & TT) neo
[npm] Neopaint Mask npm
[stw] Neopaint Stamp stw
[nsr] NewsRoom nsr ph bn
[nef] Nikon RAW nef mos
[ngg] Nokia Group Graphics ngg
[nlm] Nokia Logo File nlm
[otb] Nokia OTA bitmap otb
[nol] Nokia Operator Logo nol
[oaz] OAZ Fax oaz xfx
[os2] OS/2 Bitmap bmp bga
[ofx] Olicom Fax ofx
[orf] Olympus RAW orf
[oil] Open Image Library Format oil
[exr] OpenEXR exr
[cft] Optigraphics ctf
[ttf] Optigraphics Tiled ttf
[abs] Optocat abs
[ohir] Oric Hires hir
[otap] Oric TAP tap
[bga] Os/2 Warp bga
[pabx] PABX background pix
[pax] PAX pax
[pic] PC Paint / Pictor Page pic clp
[b16] PCO b16
[pm] PM pm
[pcl] Page Control Language pcl
[pmg] Paint Magic pmg
[jbf] PaintShopPro Browser Cache File jbf
[pspb] PaintShopPro Brush pspbrush
[pspf] PaintShopPro Frame pfr pspframe
[psp] PaintShopPro Image psp pspimage
[pspm] PaintShopPro Mask pspmask
[pmsk] PaintShopPro Mask msk
[pspp] PaintShopPro Pattern pat
[tub] PaintShopPro Picture Tube tub psptube
[pspt] PaintShopPro Texture tex
[palm] Palm Pilot pdb
[srf] Panasonic DMC-LC1 RAW srf
[pegs] Pegs pxs pxa
[pef] Pentax *ist D pef
[pfs] Pfs Art Publisher art
[pdd] Photo Deluxe pdd pdb
[fsy] PhotoFantasy Image fsy
[frm] PhotoFrame frm
[psf] PhotoStudio File psf
[stm] PhotoStudio Stamp stm
[cat] Photomatrix cat
[p2] Pic2 p2 Windows only, Plugin required
[p64] Picasso 64 p64
[prc] Picture Gear Pocket prc
[mix] Picture It! mix
[pxr] Pixar picture file pic pxr picio pixar
[pixp] Pixel Power Collage ib7 i17 i18 if9
[pxa] Pixia pxa
[pixi] Pixibox pxb
[pds] Planetary Data System pds img
[bms] Playback Bitmap Sequence bms
[2bp] Pocket PC Bitmap 2bp
[tsk] Pocket PC Themes (images) tsk
[prf] Polychrome Recursive Format prf
[pbm] Portable Bitmap pbm rpbm ppma
[pdf] Portable Document Format pdf Ghostscript needed, available on http://www.cs.wisc.edu/~ghost/
[pgm] Portable Greyscale pgm rpgm
[pnm] Portable Image pnm rpnm pbm rpbm pgm rpgm ppm rppm
[png] Portable Network Graphics png
[ppm] Portable Pixmap ppm rppm
[pgf] Portfolio Graphics pgf
[pgc] Portfolio Graphics Compressed pgc
[cvp] Portrait cvp
[bum] Poser Bump bum
[ps] Postscript ps ps1 ps2 ps3 eps prn Ghostscript needed, available on http://www.cs.wisc.edu/~ghost/
[crd] PowerCard maker crd
[pps] PowerPoint (images) pps
[ppt] PowerPoint Presentation (images) ppt
[pm] Print Master pm
[psa] Print Shop psa psb
[prx] Printfox/Pagefox bs pg gb
[cpa] Prism cpa
[prisms] Prisms pri
[psion3] Psion Series 3 Bitmap pic
[psion5] Psion Series 5 Bitmap mbm
[ppp] Punk Productions Picture ppp
[pzl] Puzzle pzl
[q0] Q0 q0 rgb
[qdv] Qdv (Random Dot Software) qdv
[qrt] Qrt Ray-Tracer qrt
[wal] Quake Texture wal
[vpb] Quantel VPB vpb
[qtif] QuickTime Image Format qtif qti
[ript] RIPTerm Image icn
[rad] Radiance rad img pic
[rp] Rainbow Painter rp
[raw] Raw raw gry grey
[ray] Rayshade pic
[rsb] Red Storm File Format rsb
[j6i] Ricoh Digital Camera j6i
[rfax] Ricoh Fax 001 ric
[pig] Ricoh IS30 pig
[xyz] Rm2K XYZ xyz
[rpm] RunPaint (Multicolor) rpm
[st4] SBIG CCD camera ST-4 st4
[stx] SBIG CCD camera ST-X stx st4 st5 st6 st7 st8
[spot] SPOT dat
[svg] SVG svg Windows only, Third Party Plugin required (http://www.cadsofttools.com)
[sar] Saracen Paint sar
[sci] SciFax sci
[sct] SciTex Continuous Tone sct ct ch
[sfw] Seattle Film Works sfw
[pwp] Seattle Film Works multi-image pwp sfw
[xp0] SecretPhotos puzzle xp0
[sj1] Sega SJ-1 DIGIO sj1
[gpb] Sharp GPB img
[bmx] Siemens Mobile bmx
[x3f] Sigma RAW x3f
[sgi] Silicon Graphics RGB rgb rgba bw iris sgi
[skn] Skantek skn
[hrz] Slow Scan Television hrz
[sdt] SmartDraw 6 template sdt
[sfax] SmartFax 001
[pan] SmoothMove Pan Viewer pan
[soft] Softimage pic si
[sir] Solitaire Image Recorder sir
[pmp] Sony DSC-F1 Cyber-shot pmp
[srf2] Sony DSC-F828 RAW srf
[tim2] Sony PS2 TIM tm2
[tim] Sony Playstation TIM tim
[spu] Spectrum 512 spu
[spc] Spectrum 512 (Compressed) spc
[sps] Spectrum 512 (Smooshed) sps
[ssi] SriSun ssi
[stad] Stad pic pac seq
[sdg] Star Office Gallery sdg
[star] Starbase img
[avs] Stardent AVS X x avs mbfs mbfavs
[aip] Starlight Xpress SX 500x291 RAW
[jps] Stereo Image jps
[sff] Structured Fax Format sff Windows only, Plugin required
[icon] Sun Icon/Cursor icon cursor ico pr
[ras] Sun Rasterfile ras rast sun sr scr rs
[taac] Sun TAAC file iff vff suniff taac
[syj] Syberia texture syj
[synu] Synthetic Universe syn synu
[tg4] TG4 tg4
[ti] TI Bitmap 92i 73i 82i 83i 85i 86i 89i
[tiff] TIFF Revision 6 tif tim tiff
[imi] TMSat image imi
[hr] TRS 80 hr
[teal] TealPaint pdb
[mh] Teli Fax mh
[tnl] Thumbnail tnl
[tjp] TilePic tjp
[tiny] Tiny tny tn1 tn2 tn3
[d3d] TopDesign Thumbnail b3d b2d
[gaf] Total Annihilation gaf
[tga] Truevision Targa tga targa pix bpx ivb
[upst] Ulead Pattern pst
[upi] Ulead PhotoImpact upi
[upe4] Ulead Texture (images) pe4
[face] Usenix FaceServer fac face
[rle] Utah raster image rle urt
[v] VIPS Image v
[vit] VITec vit
[wrl] VRML2 wrl
[vfx] Venta Fax vfx
[vif] Verity vif
[vicar] Vicar vic vicar img
[vid] Vidcom 64 vid
[vda] Video Display Adapter vda
[vista] Vista vst
[vivid] Vivid Ray-Tracer img
[vort] Vort pix
[vob] Vue d'esprit vob
[wad] WAD (Half life) wad
[iwc] WaveL iwc Windows only, Plugin required
[rla] Wavefront Raster file rla rlb rpf
[wbc] WebShots (images) wb1 wbc wbp wbz
[jig2] Weekly Puzzle jig
[ypc] Whypic ypc Windows only, Plugin required
[fxs] WinFAX fxs fxo wfx fxr fxd fxm
[winm] WinMIPS pic
[wmf] Windows & Aldus Metafile wmf Windows only
[ani] Windows Animated Cursor ani
[bmp] Windows Bitmap bmp rle vga rl4 rl8 sys
[clp] Windows Clipboard clp
[cur] Windows Cursor cur
[dib] Windows DIB dib
[emf] Windows Enhanced Metafile emf Windows only
[ico] Windows Icon ico
[wzl] Winzle Puzzle wzl
[wbmp] Wireless Bitmap (level 0) wbmp wbm wap
[wpg] Word Perfect Graphics (images) wpg
[wfx] Worldport Fax wfx
[xwd] X Windows System dump xwd x11
[xbm] X11 Bitmap xbm bm
[xpm] X11 Pixmap xpm pm
[p7] XV Visual Schnauzer p7
[xar] Xara (images) xar
[xif] Xerox DIFF xif
[xim] Ximage xim
[smp] Xionics SMP smp
[uyvy] YUV 16Bits yuv qtl uyvy
[uyvyi] YUV 16Bits Interleaved yuv qtl uyvy
[yuv411] YUV 4:1:1 yuv qtl
[yuv422] YUV 4:2:2 yuv qtl
[yuv444] YUV 4:4:4 yuv qtl
[zxhob] ZX Spectrum Hobetta $s $c !s
[zxsna] ZX Spectrum Snapshot sna
[zxscr] ZX Spectrum standard screen scr
[zzrough] ZZ Rough rgh
[dta] Zeiss BIVAS dta
[zmf] Zoner Callisto Metafile (preview) zmf
[zbr] Zoner Zebra Metafile (preview) zbr
[dcx] Zsoft Multi-page Paintbrush dcx
[pcx] Zsoft Publisher's Paintbrush pcx pcc dcx
[bif] byLight bif

View File

@@ -0,0 +1,191 @@
------------------------------------------
NConvert v7.20
XnView v2.45
Copyright (c) 1991-2018 Pierre-E Gougelet
All Rights Reserved.
E-Mail: webmaster@xnview.com
WWW: http://www.xnview.com
------------------------------------------
All Plugins must be in a directory called "Plugins" in the XnView directory !
Informations about XnView Plugins (windows only) :
==================================================
* http://www.xnview.com/download/plugins/heif_x32.zip
: Allows to read HEIC files
* Xawd.dll : Allows to read AWD files
* Xbmf.dll + BMF_read.dll : Allows to read BMF files.
* Xdjvu.dll : Allows to read to read AT&Ts DjVu format.
* Xecw.dll + NCScnet.dll + NCSEcw.dll + NCSEcwC.dll + NCSUtil.dll : Allows
to read ermapper format.
* Xeri.dll : Allows to read ERIchan format.
* Xfif.dll + deco_32.dll : Allows to read Iterated Systems format.
* Xfpx.dll : Allows to read/write FlashPix files.
* Xjbig.dll : Allows to read/write "Joint Bi-level Image experts Group" format.
* Xsff.dll : Allows to read Structured Fax files.
* Xwic.dll : Allows to read/write J Wavelet Image Codec format.
* lwf.dll : Allows to read/write Lurawave format.
Can only save images up to 4096x4096 pixels.
* ldf.dll : Allows to read LuraDocument format.
Can only save images up to 4096x4096 pixels and maximum of 6 pages.
* lwf_jp2.dll : Allows to read/write JPEG-2000 JP2/JPC File Format
Can only save images up to 4096x4096 pixels.
* Xiwc.dll : Allows to read/write WaveL format.
* Xjp2.dll : Allows to read/write JPEG-2000 JP2 File Format
& JPEG-2000 Code Stream.
* XMrSid.dll : Allows to read MrSid format.
* Xwlm.dll : Allows to read/write CompW format.
* Xjng.dll + libmng.dll : Allows to read JNG/MNG format.
* Xjpegls.dll : Allows to read JPEG lossless format.
* Xsusie.dll : Allows to use Susie's plugins.
* Xpwc.dll : Allows to read PWC (Fast Piecewise-constant) format.
* Xwhypic.dll : Allows to read YPC format.
* Xp2.dll : Allows to read Pic2 format.
* ncc.dll : Allows to show nCC (net.CynerCards) information from JPG, GIF
& PNG files. http://www.netcybercards.com
* mpeg.ll : Allows to extract frame from MPEG1 files
* pcdlib32.dll : Allows to read high resolution of PCD files
* dc120.dll : Allows to read kdc format.
* cpa.dll : Allows to read CPA Prism format.
* Xbsb.dll : Allows to read BSB/KAP format.
* ldf_jpm.dll : Allows to read/write LDF.jpm format.
* CS_DXF.dll + CS_DWG.dll + CS_HPGL.dll + CS_CGM.dll + CS_SVG.dll : Allows to read DXF/DWG/HPGL/CGM/SVG format (shareware)
Use third party component from www.cadsofttools.com
* Xcompound.dll : Allows to read 3DSMax & Picture IT! thumbnail, and Microsoft Image Composer.
* Xpax.dll : Allows to read PAX format
* rwz_sdk.dll : Allows to rawzor compressed files
* Xwsq.dll : Allows to read WSQ files (Wavelet Scaler Quantization)
* VTFLib.dll : Allows to read VTF format
* webp.dll : Allows to read/write WebP format
* paintnetlib.dll : Allows to read Paint.net format, Thanks to Johann ELSASS
* Xora.dll : Allows to read OpenRaster files
* bpg.exe : Allows to read BPG format - http://bellard.org/bpg/
* libflif.dll : Allows to read FLIF format - http://flif.info/
* clip.dll : Allows to read Clip Studio
About LuraWave, LuraDocument, LuraWave.jp2 & LuraDocument.jpm format:
--------------------------------------------------------------------
All images compressed with XnView LuraWave PlugIn should only be used for private
or evaluation purposes. Any other corporate or commercial use needs to licenced by LuraTech GmbH.
By compressing an image using the XnView LuraWave PlugIn, you accept this license agreement.
LuraTech Homepage : http://www.luratech.com
JBIG reading/writing:
--------------------
You need to purchase a license because JBIG is a patented format.
More information is available on http://www.ibm.com and http://www.jpeg.org/
Copyright:
---------
ECW Compression - http://www.ermapper.com/
(c) Earth Resource Mapping Ltd
DjVu - http://www.djvu.att.com/open
(c) AT&T Corp
- http://www.lizardtech.com/
Copyright (c) 1999, LizardTech, Inc
J Wavelet Image Codec based on work of Sasha Chukov
BMF Dmitry Shkarin (C) 1999
CompW - http://www.paralelo.com.br
Copyright (C) 1998, Paralelo Computa<74><61>o Ltda.
JasPer - http://www.ece.ubc.ca/~mdadams/jasper/
Copyright (c) 1999-2000, Image Power, Inc. and the University of British
Columbia, Canada.
Copyright (c) 2001 Michael David Adams.
IWC - http://www.wavelsoftware.com
Copyright 2001 WaveL Software
LIBMNG - http://www.libmng.com
Copyright (c) 2000,2001 Gerard Juyn
net.CyberCards - http://www.netcybercards.com
(c) Isomeris
PWC -
Copyright Paul Ausbeck
Whypic -
Copyright (c) Osamu YAMAJI
MrSid - http://www.lizardtech.com/
Copyright (c) 1999, LizardTech, Inc
DjVu - http://www.lizardtech.com/
Copyright (c) 1999, LizardTech, Inc
PCDlib32.dll -
DC120.dll
(c) Eastman Kodak Company
cpa.dll -
(c) Prism
CS_DXF.dll + CS_DWG.dll + CS_HPGL.dll + CS_CGM.dll + CS_SVG.dll - http://www.cadsofttools.com
(c) Soft Gold
PAX -
(C) 1999 Smaller Animals Software
Rawzor - http://www.rawzor.com/
(c) Sachin Garg

View File

@@ -0,0 +1,145 @@
Nconvert v7.20
XnView v2.45
Copyright (c) 1991-2018 Pierre-E Gougelet
All Rights Reserved.
Disclaimer
==========
Installing and using these software (Nview, Nconvert, View2, XnView) signifies acceptance of these terms and conditions of the license.
XnView/NConvert are provided as Freeware for private non-commercial or educational use, including non-profit organization (i.e. schools, universities, public authorities, police, fire brigade, and hospitals).
For commercial use and distribution, it is necessary to register. It is a help for the development of future versions.
You are granted the right to use and to make an unlimited number of copies of this software.
These software are provided "as-is".
No warranty of any kind is expressed or implied.
The author will not be liable for data loss, damages, loss of profits or any other kind of loss while using or misusing this software.
Any suggestions, feedback and comments are welcome.
Homepage
========
E-Mail: webmaster@xnview.com
contact@xnview.com
Web site : http://www.xnview.com
http://www.xnview.net
http://www.xnview.org
NewsGroup : http://newsgroup.xnview.com
Platforms
=========
ATARI ST, STe, Falcon, TT and compatible
PC x86 DOS
PC x86 Windows 3.1x, 95, 98, NT, Me, 2000, Xp, Vista, 7, 8.1, 10
PC x86 Linux v2.x (X Window & Lesstif/openMotif)
PC x86 FreeBSD v3.x (X Window & Lesstif/openMotif)
Silicon Graphics IRIX v5.2 and above
Sun Solaris v2.5.1 and above
Solaris x86 v8.0
HP-UX v11.0 and above
AIX v4.2 and above
BeOS v5.0 and above
MacOS X
GIF/TIFF LZW reading/writing:
-------------------
You need to purchase a license because LZW is a patented algorithm.
More information is available on http://www.unisys.com
JBIG reading/writing:
-------------------
You need to purchase a license because JBIG is a patented format.
More information is available on http://www.ibm.com and http://www.jpeg.org/
Copyright:
---------
Default toolbar mezich - http://mezich.livejournal.com
Icons are only for xnview
LibJPEG 6b - http://www.ijg.org
This software is copyright (C) 1991-1998, Thomas G. Lane. All Rights Reserved
PNGLib 1.2.5 - http://www.libpng.org/pub/png/
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. (libpng versions 0.5, May 1995, through 0.89c, May 1996)
Copyright (c) 1996, 1997 Andreas Dilger (libpng versions 0.90, December 1996, through 0.96, May 1997)
Copyright (c) 1998, 1999 Glenn Randers-Pehrson (libpng versions 0.97,January 1998, through 1.0.5, October 15, 1999)
Zlib 1.2.1 - http://www.gzip.org/zlib/
Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
JIF - http://jeff.cafe.net/jif/
(c) Jeff Tupper
RAW - http://www.cybercom.net/~dcoffin/dcraw/
(c) Dave Coffin
Credits:
--------
Solaris version : Tobias Oetiker
HP-UX version : Philippe Choquert
AIX version : Philippe Choquert
Translation:
------------
Afrikaans : Samuel Murray
Arabic : Mohammad Deeb
Basque : Axier Lopez
Bulgarian : Denis Ivajlov
Byelorussian : Alexander Gorbylev
Catalan : Jes<65>s Corrius
Chinese simplified : Alexander Yang, Roy Yao
Chinese traditional : Frank Liu, Alexander Yang
Croatian : Josip Sinkovic
Czech : Petr Bohdan
Danish : Allan Bergmann Jensen
Dutch : Michiel Oosterhagen, Theo Eering
Estonian : Ahti Kaskpeit
Finish : Haukur Krist<73>fer Bragason, Jouni Paulus
Galician : Fernando Coello
German : Axel C. Burgbacher, Helmut Mueller
Greek : Symeon Charalabides
Hebrew : Eitan Gilboa
Hungarian : Jozsef Herczeg
Icelandic : Svanur P<>lsson
Italian : Armando R. La Mura, Alexandro F.Proietti
Japanese : Sato Kazuyuki, Adrian Ivana, Yong Wei, Motomatsu Nobuhiro
Korean : Kim Wooyoung
Latvian : Aldis Putelis, Aldis Priednieks
Lithuanian : Linas Grinius
Malaysian : Ooi Ghee Tiong
Norwegian : Lasse Drageset, Lillian Solum
Polish : Skiff, Lukasz Jakubowski, Sergiusz Klimkiewicz, Tomasz Fiszer
Portuguese : Ant<6E>nio Eduardo Marques
Portuguese (Brazilian) : Paulo Neto
Romanian : Ioan Russu
Russian : Alexander Gorbylev, Igor Alikin
Serbian : Nik Vukovljak
Slovak : Peter Cipov, Lucas Sivak
Slovene : Filip Komar, Grega Fajdiga
Spanish : Jorge A. Montes P<>rez
Swedish : Olof T<>rnqvist, M<>rten Mellberg
Tha<68> : Thanachai Wachiraworakam
Turkish : Ibrahim Kutluay
Ukrainian : Taras Domansky
Uzbek : Sherzod Mamatkulov
Vietnamese : Ton, Quang Toai & Vo, Khanh Kim Van
Welsh : Geraint Jones

View File

@@ -0,0 +1,188 @@
NConvert v7.20
XnView v2.45
Copyright (c) 1991-2018 Pierre-E Gougelet
All Rights Reserved.
NVIEW
=====
Nview is a multi-format image viewer.
Type nview -help for available options.
About Nview for PC under DOS:
-----------------------------
Nview is VESA compatible and works in 8,15,16 bits and truecolor mode.
The only mode available is 320x200x8 if your video card doesn't
support Vesa mode.
For a complete description of the available modes on the display, type
nview -help (and use it with -d option's)
For example with my Diamond S3 864, "nview -d3 back.gif" use the 640x480x15 display.
With the -p<width>x<height>x<bits>, you take the best display that matches the arguments.
(Example: nview -p640x480x24 back.gif)
-p0x0x0 choose the best display for the bitmap.
About Nview for X Window:
--------------------------------------
Nview displays bitmaps on the default visual. You can use
-visual id (id is the visual number seeing with nview -help).
By default, Nview display the bitmap and wait for a mouse click or the Escape key.
With the -w option, Nview create one window per bitmap.
Nview works with pipe, in this case the input format must be specified:
cat img.tga | nview -f2 stdin
NCONVERT
========
Nconvert is the multi-format commandline image converter for Win32, DOS, OS/2, and other platforms.
Type "nconvert -help" for available options.
Type "nconvert -help > nchelp.txt" to save the help text into the file "nchelp.txt".
To convert files to a specific format, type for example :
nconvert -out 5 file1.pic file2.jpg file3.tga
or
nconvert -out tiff file1.pic file2.jpg file3.tga
With a resize :
nconvert -out jpeg -ratio -resize 480 0 *.jpg
nconvert -out jpeg -resize 640 480 *.jpg
The input format is not necessary, it will be autodetected. If a problem occurs, use the -in option.
Nconvert is able to transform images while converting:
* To convert GIF files to JPEG files :
nconvert -out jpeg -truecolors *.gif
* To convert JPEG files to GIF files :
nconvert -out gif -dither -colors 256 *.jpeg
* To resize :
nconvert -out png -resize 510 230 *.jpeg
nconvert -out png -ratio -resize 510 0 *.jpeg
nconvert -out png -ratio -resize 0 510 *.jpeg
nconvert -out png -resize 200% 200% *.jpeg
You can use it with images sequences.
For example, to convert the files file00.pic, file01.pic, ..., file10.pic and
we convert to jpeg format with the name pattern res0.jpg, res1.jpg, ... type :
nconvert -out jpeg -n 1 10 1 -o res#.jpg file##.pic
You can use % to specify source filename in dest filename.
For example, nconvert -out jpeg -o result_%.jpg file.tga
creates a file named result_file.jpg
Note for windows users: in batch files you must write %% instead of %. To bypass this problem, you can use a nconvert script instead of a batch file.
You can control nconvert with a script, performing multiple sets of conversions on multiple sets of files, example:
### -out png -rtype lanczos -resize 200% 150%
screenshot1.bmp
screenshot2.bmp
screenshot3.bmp
### -out gif -rtype lanczos -resize 500% 500% -oil 10 -colours 32
F:\icons\smile.bmp
### -out bmp -rtype lanczos -resize 30% 30% -oil 2 -rotate_flag smooth -rotate 45
selfportrait.png
mydog.png
Save this into a text file, for example "nc.txt", and then run nconvert with this file as the only parameter: "nconvert nc.txt" .
Limitations:
Add text feature uses the Win32 API and is avaiable on Win32 only.
Some exotical image formats use external DLL's and are available on Win32 only.
When using a script file, avoid multiple spaces in the conversion definitions, they confuse the parser.
Converting huge images, or scaling up to a huge size requires much memory and may not always work.
Notes for DOS users:
Since v4.90, nconvert is supported for DOS again. Is is a 32-bit DOS application, using the "DOS/32A Extender".
Also the NVIEW picture viewer had a DOS version, but was discontinued in 2002 at version 3.87. It is available bundled with old nconvert 3.87.
XnView (Extended Nview)
=======================
About XnView for X Window:
---------------------------
XnView requires OSF/Motif 1.2 or later.
Type xnview -help for available options.
XnView displays bitmaps on the default visual. You can specify
an X visual id (in hexadecimal) with '-visualid id'.
Linux/FreeBSD/OpenBSD Version:
-----------------------------
XnView requires Linux 2.0.x, XFree86-3.2 and Lesstif v0.91 or openMotif v2.1.30
openMotif is available from the following URL's :
ftp://openmotif.opengroup.org/pub/openmotif/R2.1.30/binaries/metrolink/
Lesstif is available from the following URL's
http://www.lesstif.org/products/lesstif/
ftp://ftp.lesstif.org/pub/hungry/lesstif/bindist
About XnView for Windows (x86):
-------------------------------
XnView for windows requires Windows 3.x with Win32s, or Windows 95/98/Me/NT/2000.
Windows 3.1x users note:
-----------------------
You'll need the latest release of win32s for Microsoft Windows 3.1x
and Windows for Workgroup 3.1x.
If there is a file called 'win32s.ini' in the directory \windows\system,
you already have win32s. This file contains the version information.
If the version number is equal or greater than 1.30.172 (v1.30c),
you don't have to reinstall win32s.
Win32s v1.30c can be downloaded via
ftp://ftp.rmc.edu/pub/windows16/win32s13.exe
About Unix version:
------------------
You will need to set the
* LD_LIBRARY_PATH (Irix, Linux, FreeBSD)
* SHLIB_PATH (HP-UX)
* LIBPATH (AIX)
* LIBRARY_PATH (BeOS)
environment variable with the path where the libraries are.
By default 'install' puts the libraries in /usr/local/lib.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,827 @@
** NCONVERT v7.20 (c) 1991-2017 Pierre-E Gougelet (May 31 2018/13:57:24) **
Version for Windows NT/9x/2000/Xp/Vista/7 (All rights reserved)
** Site license for Kabam Games Inc
The JPEG code is based in part on the work of the Independent JPEG Group's software.
The PNG code is based in part on the work of the Group 42, Inc.
This software is based in part on compression library of Jean-loup Gailly and Mark Adler
Usage : nconvert [options] file ...
Options :
-quiet : Quiet mode
-info : Display informations only
-fullinfo : Display informations & metadata only
-v[.] : Verbose
-in format : Input format number or -1
-page num : Page/image number
-xall : Extract all images
-multi : Create a multi-page (TIFF/DCX/LDF/PDF only)
-npcd num : PCD 0:192x128, 1:384x256, 2:768x512 (default)
-ngrb npic : HP-48 number of grey : 1, 2 or 4 (default : 1)
-no# : # not used for numeric operator
-org_depth : Load with original depth
-older n : Convert only if older than n days
-clipboard : Import from clipboard
-overwrite : Overwrite existing file
-ignore_errors : Ignore errors
-no_auto_ext : Don't add extension to output filename
-ctype type : Channel Type (Raw)
grey : Greyscale (default)
rgb : Red,Green,Blue
bgr : Blue,Green,Red
rgba : Red,Green,Blue,Alpha
abgr : Alpha,Blue,Green,Red
cmy : Cyan,Magenta,Yellow
cmyk : Cyan,Magenta,Yellow,Black
-corder order : Channel Order (Raw)
inter : Interleaved (default)
seq : Sequential
sep : Separate
-size geometry : Width and height (Raw/YUV)
Geometry is widthxheight+offset
-l file : Use file as filelist
-n start end step : Begin End Step (for image sequence)
-t start step : Begin Step (for # in output filename)
-o filename : Output filename
Use # to specify position of numeric enumerator
Use % to specify source filename
Use $ to specify full source pathname
Use $$ to specify source folder name
Use $EXIF:DateModified[date format] to specify EXIF date modified
Use $EXIF:DateTaken[date format] to specify EXIF date taken
Date format: Please check documentation of strftime
-out format : Output format name
-D : Delete original picture
-c value : Compression number
default : 0 (uncompressed)
PDF : 1 (Fax), 2 (Rle), 3 (LZW), 4(ZIP), 5 (JPEG)
TIFF : 1 (Rle), 2 (LZW), 3 (LZW+Prediction)
4 (ZLIB)
5 (CCITT G3), 6 (CCITT G3-2D), 7 (CCITT G4) only B/W
8 (JPEG) only 24/32 bits
TARGA, Softimage, SGI, PCX, IFF, BMP : 1 (Rle)
-c_bw value : Compression number for black&white picture (default : 0)
-c_grey value : Compression number for greyscale picture (default : 0)
-c_rgb value : Compression number for color picture (default : 0)
-q value : JPEG/FPX/WIC/PDF quality (default : 85)
-clevel value : PNG Compression level (default : 6)
-i : Interlaced GIF / Progressive JPEG
-icc : Use ICC Profile
-keep_icc : Keep ICC Profile from original file
-icc_in filename : Input color profile
-icc_out filename : Output color profile
-icc_intent value : Intent value
-icc_bcp : Black point compensation
-icc_ie : Ignore embedded ICC profile
-add_alpha value : Add alpha channel (24bits)
-merge_alpha : Merge alpha by using 'transparent color' (32bits)
-set_alpha : Add alpha by using 'transparent color' (32bits)
-transparent value: Transparency index (GIF/PNG)
-transpcolor red green blue: Transparency color (GIF/PNG)
-opthuff : Optimize Huffman Table (JPEG)
-dct value : DCT method
0 : Slow
1 : Fast
2 : Float
-smoothingf value : Smoothing factor (0-10)
-subsampling value : Subsampling factor
0 : 2x2,1x1,1x1
1 : 2x1,1x1,1x1
2 : 1x1,1x1,1x1
-comp_ratio value: Compress ratio (JPEG2K)
-max_filesize value: Maximum filesize (JPEG2K)
-bgcolor red green blue: Background color (for rotate/canvas)
-dpi res_dpi : Set the resolution in DPI
-keepdocsize : Resize bitmap function of the old and new DPI value
-keepfiledate : Keep original file data/time
-keepcspace : Keep original color space if possible
-cmyk_space : Convert if possible in CMYK space
-jpegtrans op : JPEG lossless transformations
rot90 : Rotate 90 degrees
rot180 : Rotate 180 degrees
rot270 : Rotate 270 degrees
exif : Use orientation EXIF tag
vflip : Flip vertical
hflip : Flip horizontal
-jpegcrop x y w h : JPEG lossless crop
-clean value : JPEG Clean Metadata (EXIF/IPTC/...)
1 : Comment
2 : EXIF
4 : XMP
8 : EXIF thumbnail
16 : IPTC
32 : ICC Profile
64 : Other markers
-rmeta : Remove Metadata (EXIF/IPTC/...)
-rexifthumb : Remove EXIF thumbnail
-buildexifthumb : Try to rebuild EXIF thumbnail
-exif_orient value : Set EXIF orientation value
1 = Horizontal
2 = Mirror horizontal
3 = Rotate 180
4 = Mirror vertical
5 = Mirror horizontal and rotate 270 CW
6 = Rotate 90 CW
7 = Mirror horizontal and rotate 90 CW
8 = Rotate 270 CW
-iptc_print tag : Print IPTC tag value
-iptc_clear tag : Erase IPTC tag
-iptc_set tag value : Set value to IPTC tag
-iptc_add tag value : Add value to IPTC tag
-thumb width height : Extract thumbnail
-use_cie : Use CIE Colors (PS/EPS/PDF ghostscript)
-wflag flag : Write flag
os2 : Write OS/2 bmp
gif87 : Write GIF87a
hp49 : Write HP49
-half_res : Load half resolution (Camera RAW)
-embedded_jpeg : Load embedded jpeg (Camera RAW)
-ascii : Ascii (PPM)
-one_strip : One strip (TIFF)
-jxr_color value : JpegXR color format (yuv444, yuv422, yuv420)
-jxr_filter value : JpegXR block filtering
0: off, 1: HP, 2:all
-gam value : Gamma (EXR, HDRI), default=1.0
-raw_autobalance : Auto balance (Camera RAW)
-raw_camerabalance : Camera balance (Camera RAW)
-raw_autobright : Auto brightness (Camera RAW)
-raw_gamma value : Gamma (Camera RAW), default=0.6
-raw_brightness value : Brighness (Camera RAW), default=0.8
-raw_redscale value : Red scaling (Camera RAW)
-raw_bluescale value : Blue scaling (Camera RAW)
-ilut file : Input LUT file (DPX/Cineon)
-olut file : Output LUT file (DPX/Cineon)
-wmfile file : Watermark file (Must be after other -wm commands)
-wmpos x y : Watermark position
-wmflag flag : Watermark position
top-left, top-center, top-right
center-left, center, center-right
bottom-left, bottom-center, bottom-right
-wmopacity value : Watermark opacity (0-100)
-wmstretch : Stretch image
Process :
-32bits : Convert in 32bits
-average size : Average (3,5,7,9,11,13)
-autocrop tol r g b : Auto Crop
-autocontrast : Auto Contrast
-autodeskew r g b : Auto Deskew
-autolevels : Auto Levels
-balance r g b : Color balance
-binary dither : Convert in Binary
pattern : Ordered pattern
floyd : Floyd steinberg
halft45 : Halftone 45
halft90 : Halftone 90
nodither : No dithering
-blur percent : Blur (1...100)
-brightness value : Modify brightness (-100...100)
-canvas w h pos : Resize canvas
w h can be percent (ex: -canvas 100% 200%)
or #x #y for offset
pos top-left, top-center, top-right
center-left, center, center-right
bottom-left, bottom-center, bottom-right
-conbright value : Modify brightness (-100...100)
-colours num
-colors num : Convert in Indexed Colors (256, 216, 128, 64, 32, 16 or 8)
-contrast value : Modify contrast (-100...100)
-crop x y w h : Crop
-dither : Use Bayer dithering for conversion (Colors and Grey only)
-deinter k n : De-interlace
k : even or odd
n : dup or int
-edetail : Enhance detail
-eedge percent : Enhance edges (1...100)
-edgedetect type : Edge detect
light/medium/heavy
-efocus : Enhance focus
-emboss : Emboss
-embossmore : Emboss more
-equalize : Equalize
-floyd : Use floydSteinberg dithering for conversion (Colors and Grey only)
-frestore : Focus restoration
-gamma value : Modify gamma (0.01<->5.0
-gammasat value : Modify gamma (0.01<->5.0
-gauss size : Blur gaussian (3,5,7,9,11,13)
-grey num : Convert in Grey Scale (256, 128, 64, 32, 16, 8 or 4)
-hls h l s : Adjust Hue Lightness Saturation
-lens percent : Lens (1...100)
-levels b w : Levels
-log : Apply logarithmic correction
-maximum size : Maximum filter (3,5,7,9,11,13)
-medianb size : Median Box filter (3,5,7,9,11,13)
-medianc size : Median Cross filter (3,5,7,9,11,13)
-minimum size : Minimum filter (3,5,7,9,11,13)
-mosaic size : Mosaic (1...64)
-negate : Negate
-new bpp w h : Create new bitmap
-noise reduce : Reduce noise
-noise type value
uniform : Add uniform noise
gaussian : Add gaussian noise
laplacian : Add laplacian noise
poisson : Add poisson noise
-normalize : Normalize
-oil size : Oilify (1...16)
-posterize count : Posterize (2...256)
-ratio : Keep the aspect ratio for scaling
-replace r g b r g b : Replace color
-rtype : Type of resampling
quick : Quick resize
linear : Bi-linear (linear)
hermite : Hermite
gaussian : Gaussian
bell : Bell
bspline : Bspline
mitchell : Mitchell
lanczos : Lanczos
-rflag : Flag for resizing
incr : Increase only
decr : Decrease only
orient : Follow orientation
-resize w h : Scale width-height
w h can be percent (ex: -resize 100% 200%)
-resize fill w h : Scale by filling the box wxh
-resize longest size : Scale longest side
-resize shortest size : Scale shortest side
-rotate_flag : Rotate flags
smooth : Use smooth rotate
-rotate degrees : Rotate
-saturation red green blue cyan magenta yellow : Saturation (-100...100)
-sepia percent : Sepia
-sharpen percent : Sharpen (1...100)
-shear : Shear
-slice : Slice
-soften percent : Soften (1...100)
-solarize value : Solarize (1...255)
-spread amount : Spread (1...32)
-swap type : Swap component
rbg : RGB->RBG
bgr : RGB->BGR
brg : RGB->BRG
grb : RGB->GRB
gbr : RGB->GBR
-swirl degrees : Swirl (1...360)
-text string : Add a text
-text_font name size : Font name and size
-text_color r g b : Text color
-text_back r g b : Text background color
-text_flag pos : Position of text
top-left, top-center, top-right
center-left, center, center-right
bottom-left, bottom-center, bottom-right
-text_pos x y : Position or offset
-text_rotation degrees : Rotation
-text_border size red green blue : Add a border
-tile size : Tile (1...64)
-truecolors
-truecolours : Convert in True Colors
-xflip : Flip horizontal
-yflip : Flip vertical
-waves wavelength phase amount : Waves
wavelength : (1.0 50.0)
phase : (0.0 360.0)
amount : (0.0 100.0)
Available format:
Name Write Description
-1 : Automatic (Only for input)
[* ] : JFIF based file
[2bp ] : Pocket PC Bitmap
[2d ] : Amapi
[3fr ] : Hasselblad RAW
[411 ] : Mavica
[a64 ] : Artist 64
[abmp ] : Alpha Microsystems BMP
[abr ] : PS Brush
[abs ] : Optocat
[acc ] : Access
[ace ] : ACE texture
[aces ] : Aces200
[acorn ] : Acorn Sprite
[adex ] : ADEX
[adt ] : AdTech perfectfax
[afdesign<67>] : Affinity designer
[afphoto ] : Affinity photo
[afx ] : Auto F/X
[ai ] : Adobe Illustrator
[aim ] : AIM Grey Scale
[aip ] : Starlight Xpress SX 500x291 RAW
[aipd ] : AIPD image
[alias ] * : Alias Image File
[ami ] : Amica Paint
[ani ] : Windows Animated Cursor
[anv ] : AirNav
[aphp ] : Adobe PhotoParade (images)
[apx ] : Ability Photopaint Image
[arcib ] * : ArcInfo Binary
[arf ] : ARF
[arn ] : Astronomical Research Network
[art ] : Artisan
[artdir ] : Art Director
[arw ] : Sony RAW
[atk ] : Andrew Toolkit raster object
[att ] : AT&T Group 4
[aurora ] : Aurora
[avs ] : Stardent AVS X
[avw ] : Analyze
[az7 ] : Analyze-7
[b16 ] : PCO
[b3d ] : B3D (images)
[bdr ] : Brender
[bfli ] : BFLI
[bfx ] : Bfx Bitware
[bga ] : Os/2 Warp
[bias ] : BIAS FringeProcessor
[bif ] : byLight
[biorad ] * : Bio-Rad confocal
[bip ] : Character Studio (thumbnail)
[bld ] : MegaPaint
[blend ] : Blender thumbnail
[blp ] : BLP textures
[bmc ] : Embroidery
[bmg ] : Bert's Coloring
[bmp ] * : Windows Bitmap
[bms ] : Playback Bitmap Sequence
[bmx ] : Siemens Mobile
[bob ] : Bob Raytracer
[bpr ] : AAA logo
[brk ] : Brooktrout 301
[bsg ] : Fontasy Grafik
[btn ] : JustButtons animated bitmap
[bum ] : Poser Bump
[byusir ] : BYU SIR
[c4 ] : Edmics
[cadc ] : Autocad CAD-Camera
[cals ] : CALS Raster
[cam ] : Casio QV-10/100 Camera
[can ] : Canon Navigator Fax
[car ] : NeoBook Cartoon
[cart ] : Crayola
[cat ] : Photomatrix
[cbmf ] : Corel Flow (preview)
[cdr ] : Corel Draw Bitmap (preview)
[cdu ] : CDU Paint
[ce ] : Computer Eyes, Digital Vision
[ce1 ] : ComputerEyes Raw
[cel ] : Kiss Cel
[cft ] : Optigraphics
[cgm ] : CGM
[che ] : Cheese
[cin ] * : Kodak Cineon
[cip ] : Cisco IP Phone
[ciph ] : InterPaint (Hires)
[cipt ] : InterPaint (Multicolor)
[cish ] : Image System (Hires)
[cism ] : Image System (Multicolor)
[cloe ] : Cloe Ray-Tracer
[clp ] : Windows Clipboard
[cmt ] : Chinon ES-1000 digital camera
[cmu ] : CMU Window Manager
[cmx ] : Corel Metafile Exchange (preview)
[cncd ] : CoverDesigner (images)
[cnct ] : CoverDesigner Template (images)
[cp8 ] : CP8 256 Gray Scale
[cpa ] : Prism
[cpat ] : Corel Draw Pattern (preview)
[cpc ] : Amstrad Cpc Screen
[cpt ] : Corel PhotoPaint 6.0
[cr2 ] : Canon EOS-1D Mark II RAW
[craw ] : Camera RAW
[crd ] : PowerCard maker
[crg ] : Calamus
[crw ] : Canon PowerShot
[csv ] * : CSV
[ct ] : Iris CT
[cur ] : Windows Cursor
[cut ] : Dr Halo
[cvp ] : Portrait
[cwg ] : CreateWithGarfield
[d3d ] : TopDesign Thumbnail
[dali ] : Dali Raw
[dbw ] : DBW Render
[dcmp ] : Discorp CMP Image
[dcpy ] : Datacopy
[dcr ] : Kodak Pro Digital RAW
[dcx ] * : Zsoft Multi-page Paintbrush
[dd ] : Doodle C64
[dds ] * : Direct Draw Surface
[degas ] * : Degas & Degas Elite
[dib ] : Windows DIB
[dicom ] : Dicom
[dkb ] * : DKB Ray-Tracer
[dng ] : DNG
[dol ] : DolphinEd
[doodle ] : Doodle Atari
[dpx ] * : DPX
[drz ] : Draz Paint
[dsi ] : CImage
[dta ] : Zeiss BIVAS
[dwg ] : DWG preview
[dwg ] : AutoCAD DWG
[ecc ] : Ecchi
[efx ] : Everex Everfax
[eidi ] : Electric Image
[eif ] : Eroiica
[emf ] * : Windows Enhanced Metafile
[emz ] : Windows Comp. Enhanced Metafile
[epa ] : Award Bios Logo
[epi ] : EPS Interchange Format
[eps ] : Encapsulated Postscript
[epsp ] : Encapsulated Postscript(Preview)
[erf ] : Epson RAW
[esm ] : Enhance Simplex
[esmp ] : ESM Software Pix
[eyes ] : Microtek Eyestar
[f96 ] : Fremont Fax96
[face ] : Usenix FaceServer
[fax ] : Fax Group 3
[fbm ] : Fuzzy bitmap
[fcx ] : Faxable PCX
[fff ] : Maggi Hairstyles & Cosmetics
[fff ] : Imacon/Hasselblad RAW
[ffpg ] : Fenix Multi Map
[fgs ] : Fun Graphics Machine Hires
[fi ] : Flash Image
[fit ] : FIT
[fits ] * : Flexible Image Transport System
[fli ] : Autodesk Animator
[fmag ] : FileMagic
[fmap ] : Fenix Map
[fmf ] : Fax man
[fp2 ] : Fun Painter II
[fpg ] : DIV Game Studio Multi Map
[fpr ] : Fun Photor
[fpt ] : Face Painter
[fre ] : Male Normal CT
[frm ] : PhotoFrame
[frm2 ] : Album b<>b<EFBFBD>
[fsh ] : EA Sports FSH
[fsy ] : PhotoFantasy Image
[ftf ] : Faxable TIFF
[fx3 ] : Fugawi Map
[fxs ] : WinFAX
[g16 ] : GRS16
[g3n ] : Imaging Fax
[gaf ] : Total Annihilation
[gbr ] * : Gimp Brush
[gcd ] : Gigacad (Hires)
[gem ] : Digital Research (GEM Paint)
[geo ] : GeoPaint
[gfaray ] : Gfa Raytrace
[gg ] : Koala Paint (Compressed)
[gicon ] : Gimp Icon
[gif ] * : CompuServe GIF
[gig ] : GigaPaint Multi
[gih ] : GigaPaint Hi-res
[gm ] : Autologic
[gmf ] : Gamma Fax
[god ] : GoDot
[gpat ] * : Gimp Pattern
[gpb ] : Sharp GPB
[grob ] * : HP-48/49 GROB
[gun ] : GunPaint
[hdri ] : HDRI
[hdru ] : Apollo HDRU
[hed ] : Hi-Eddi
[hf ] : HF
[hir ] : Hires C64
[hpgl ] : HPGL-2
[hpi ] : Hemera Photo Image
[hr ] : TRS 80
[hru ] * : HRU
[hrz ] : Slow Scan Television
[hsi ] : HSI Raw
[hta ] : Hemera Thumbs
[iam ] : Inventor Assembly thumbnail
[icb ] : Image Capture Board
[icd ] : Core IDC
[icl ] : Icon Library
[icn ] : AT&T multigen
[icns ] : Mac icon
[ico ] * : Windows Icon
[icon ] : Sun Icon/Cursor
[iff ] * : Amiga IFF
[ifx ] : IcoFX
[iim ] : Inshape
[iimg ] : Interleaf
[ilab ] : ImageLab
[im5 ] : IM5 (Visilog)
[img ] : Img Software Set
[imgt ] : Imaging Technology
[imi ] : TMSat image
[imt ] : IMNET Image
[indd ] : InDesign thumbnail
[info ] : Amiga icon
[ingr ] : Intergraph Format
[ioca ] : IOCA
[ipg ] : Mindjongg Format
[ipl ] : IPLab
[ipl2 ] : IPLab
[ipn ] : Inventor Presentation thumbnail
[ipseq ] : ImagePro Sequence
[ipt ] : Inventor Fusion thumbnail
[iris ] : Iris Graphics
[ish ] : Image Speeder
[iss ] : ISS
[j6i ] : Ricoh Digital Camera
[jbf ] : PaintShopPro Browser Cache File
[jbr ] : PaintShopPro Brush
[jif ] * : Jeff's Image Format
[jig ] : Jigsaw
[jig2 ] : Weekly Puzzle
[jj ] : Doodle C64 (Compressed)
[jls ] : Jpeg-LS
[jpeg ] * : JPEG / JFIF
[jps ] : Stereo Image
[jtf ] : Hayes JTFax
[jxr ] * : JPEG XR
[k25 ] : Kodak DC25 Camera
[k25b ] : Kodak DC25 Camera
[kdc ] : Kodak DC120 Digital Camera
[kdc2 ] : Kodak DC120 Digital Camera
[kfx ] : Kofax Group 4
[kntr ] : KONTRON
[koa ] : Koala Paint
[kps ] : IBM Kips
[kqp ] : Konica Camera File
[kro ] * : Kolor Raw Format
[kskn ] : KinuPix Skin
[lbm ] : Deluxe Paint, Electronic Arts
[lcel ] : Lumena CEL
[lda ] : LaserData
[lff ] : LucasFilm Format
[lif ] : Homeworld Texture
[lsm ] : Zeiss LSM
[lss ] : LSS16
[lvp ] : LView Pro
[lwi ] : Light Work Image
[m8 ] : Heretic II MipMap
[mac ] : Mac Paint
[mag ] : MAKIchan Graphics
[map ] : DIV Game Studio Map
[mbig ] : Cartes Michelin
[mdl ] : Half-Life Model
[mef ] : Mamiya RAW
[mfrm ] : Megalux Frame
[mgr ] : MGR bitmap
[mh ] : Teli Fax
[miff ] * : Image Magick file
[mil ] : Micro Illustrator Uncompressed
[mjpg ] : JPEG 8BIM header (Mac)
[mkcf ] : MonkeyCard
[mklg ] : MonkeyLogo
[mng ] : Multiple Network Graphics
[mon ] : Mono Magic
[mos ] : Leaf RAW
[mph ] : MonkeyPhoto
[mpo ] : Multiple Picture
[mrc ] : MRC (Medical Research Council)
[mrf ] : Marks Russel File
[mrw ] : Minolta DiMAGE RAW
[msp ] : Microsoft Paint
[msx2 ] : Msx 2 Screen
[mtv ] * : MTV Ray-Tracer
[mtx ] : Maw-Ware Textures
[ncr ] : NCR Image
[ncy ] : FlashCam Frame
[ncy ] : FlashCam frame
[nef ] : Nikon RAW
[neo ] : Neochrome (ST & TT)
[ngg ] * : Nokia Group Graphics
[nifti ] : Nifti
[nist ] : NIST ihdr
[nitf ] : National Imagery Transmission F.
[nlm ] * : Nokia Logo File
[nol ] * : Nokia Operator Logo
[npm ] : Neopaint Mask
[nrw ] : Nikon RAW
[nsr ] : NewsRoom
[oaz ] : OAZ Fax
[ocp ] : Advanced Art Studio
[of ] : HP-49 OpenFire
[ofx ] : Olicom Fax
[ohir ] : Oric Hires
[oil ] : Open Image Library Format
[ols ] : Olympus Scan
[orf ] : Olympus RAW
[os2 ] : OS/2 Bitmap
[otap ] : Oric TAP
[otb ] * : Nokia OTA bitmap
[p64 ] : Picasso 64
[p7 ] : XV Visual Schnauzer
[pabx ] * : PABX background
[palm ] * : Palm Pilot
[pam ] : Portable Arbitrary Map
[pan ] : SmoothMove Pan Viewer
[patps ] : Photoshop Pattern
[pbm ] * : Portable Bitmap
[pbt ] : Micro Dynamics MARS
[pcd ] : Kodak Photo CD
[pcl ] * : Page Control Language
[pcp ] : Atari grafik
[pcx ] * : Zsoft Publisher's Paintbrush
[pd ] : Male MRI
[pdd ] : Photo Deluxe
[pdf ] * : Portable Document Format
[pds ] : Planetary Data System
[pdx ] : Mayura Draw
[pef ] : Pentax *ist D
[pegs ] : Pegs
[pfi ] : Photo Filtre Studio
[pfm ] : PFM graphic
[pfs ] : Pfs Art Publisher
[pgc ] : Portfolio Graphics Compressed
[pgf ] : Portfolio Graphics
[pgm ] * : Portable Greyscale
[pi ] : Blazing Paddles
[pic ] : PC Paint / Pictor Page
[pict ] : Macintosh Quickdraw/Pict
[pig ] : Ricoh IS30
[pixi ] : Pixibox
[pixp ] : Pixel Power Collage
[pld ] : PhotoLine (preview)
[pm ] : Print Master
[pm ] : PM
[pmg ] : Paint Magic
[pmp ] : Sony DSC-F1 Cyber-shot
[pmsk ] : PaintShopPro Mask
[png ] * : Portable Network Graphics
[pnm ] * : Portable Image
[pp4 ] : Micrografx Picture Publisher 4.0
[pp5 ] : Micrografx Picture Publisher 5.0
[ppm ] * : Portable Pixmap
[ppp ] : Punk Productions Picture
[pps ] : PowerPoint (images)
[ppt ] : PowerPoint Presentation (images)
[prc ] * : Picture Gear Pocket
[prf ] : Polychrome Recursive Format
[prisms ] : Prisms
[prx ] : Printfox/Pagefox
[ps ] * : Postscript
[psa ] : Print Shop
[psb ] : Adobe Photoshop (large)
[psd ] * : Adobe Photoshop
[pseg ] : IBM Printer Page Segment
[psf ] : PhotoStudio File
[psion3 ] * : Psion Series 3 Bitmap
[psion5 ] * : Psion Series 5 Bitmap
[psp ] : PaintShopPro Image
[pspb ] : PaintShopPro Brush
[pspf ] : PaintShopPro Frame
[pspm ] : PaintShopPro Mask
[pspp ] : PaintShopPro Pattern
[pspt ] : PaintShopPro Texture
[ptg ] : Artrage
[pwp ] : Seattle Film Works multi-image
[pxa ] : Pixia
[pxr ] : Pixar picture file
[pzl ] : Puzzle
[pzp ] : MGI Photosuite Project (images)
[q0 ] : Q0
[qcad ] : Autodesk QuickCAD thumbnail
[qdv ] : Qdv (Random Dot Software)
[qrt ] * : Qrt Ray-Tracer
[qtif ] : QuickTime Image Format
[rad ] * : Radiance
[raf ] : Fuji S2 RAW
[ras ] : Sun Rasterfile
[raw ] * : Raw
[raw1 ] : Sinar RAW
[raw2 ] : AVT RAW
[raw3 ] : Casio RAW
[raw4 ] : Contax RAW
[raw5 ] : Creative PC-CAM RAW
[raw6 ] : Foculus RAW
[raw7 ] : Leica RAW
[raw8 ] : Micron RAW
[raw9 ] : Panasonic RAW
[rawa ] : RoverShot RAW
[rawb ] : ST Micro RAW
[rawdvr ] : RAW DVR
[rawe ] * : Raw
[ray ] * : Rayshade
[rdc ] : Rollei RAW
[rfa ] : Mobile FAX
[rfax ] : Ricoh Fax
[ript ] : RIPTerm Image
[rix ] : ColoRIX
[rla ] * : Wavefront Raster file
[rlc2 ] : Image Systems RLC2 Graphic
[rle ] : Utah raster image
[rp ] : Rainbow Painter
[rpm ] : RunPaint (Multicolor)
[rsb ] : Red Storm File Format
[rsrc ] : Mac OSX Resource
[rw2 ] : Panasonic LX3 RAW
[rwl ] : Leica RAW
[sar ] : Saracen Paint
[sci ] : SciFax
[sct ] * : SciTex Continuous Tone
[sdg ] : Star Office Gallery
[sdt ] : SmartDraw 6 template
[sfax ] : SmartFax
[sfw ] : Seattle Film Works
[sgi ] * : Silicon Graphics RGB
[sif ] : SIF MICHEL-Soft
[sir ] : Solitaire Image Recorder
[sj1 ] : Sega SJ-1 DIGIO
[skf ] : Autodesk SKETCH thumbnail
[skn ] : Skantek
[skp ] : Autodesk SketchUp component
[smp ] : Xionics SMP
[soft ] * : Softimage
[spc ] : Spectrum 512 (Compressed)
[spot ] : SPOT
[sps ] : Spectrum 512 (Smooshed)
[spu ] : Spectrum 512
[srf ] : Panasonic DMC-LC1 RAW
[srf2 ] : Sony DSC-F828 RAW
[srw ] : Samsung RAW
[ssi ] : SriSun
[ssp ] : Axialis Screensaver (images)
[sst ] : AVHRR Image
[st4 ] : SBIG CCD camera ST-4
[stad ] : Stad
[star ] : Starbase
[stm ] : PhotoStudio Stamp
[stw ] : Neopaint Stamp
[stx ] : SBIG CCD camera ST-X
[svg ] : SVG
[syj ] : Syberia texture
[synu ] : Synthetic Universe
[taac ] : Sun TAAC file
[tdi ] * : Explore (TDI) & Maya
[tdim ] : Digital F/X
[teal ] : TealPaint
[tg4 ] : TG4
[tga ] * : Truevision Targa
[thmb ] : IPod thumb
[ti ] * : TI Bitmap
[tiff ] * : TIFF Revision 6
[til ] : Buttonz & Tilez texture
[tile ] : Eclipse
[tim ] : Sony Playstation TIM
[tim2 ] : Sony PS2 TIM
[tiny ] : Tiny
[tjp ] : TilePic
[tnl ] : Thumbnail
[trup ] : Egg Paint
[tsk ] : Pocket PC Themes (images)
[ttf ] : Optigraphics Tiled
[tub ] : PaintShopPro Picture Tube
[txc ] : PS2 TXC
[uni ] : Brother Fax
[upe4 ] : Ulead Texture (images)
[upi ] : Ulead PhotoImpact
[upst ] : Ulead Pattern
[uyvy ] * : YUV 16Bits
[uyvyi ] * : YUV 16Bits Interleaved
[v ] : VIPS Image
[vda ] : Video Display Adapter
[vfx ] : Venta Fax
[vi ] : Jovian VI
[vicar ] : Vicar
[vid ] : Vidcom 64
[vif ] : Verity
[viff ] : Khoros Visualization Image file
[vista ] * : Vista
[vit ] : VITec
[vivid ] * : Vivid Ray-Tracer
[vob ] : Vue d'esprit
[vort ] : Vort
[vpb ] : Quantel VPB
[wad ] : WAD (Half life)
[wal ] : Quake Texture
[wbc ] : WebShots (images)
[wbmp ] * : Wireless Bitmap (level 0)
[webp ] * : WebP
[wfx ] : Worldport Fax
[winm ] : WinMIPS
[wmf ] : Windows & Aldus Metafile
[wmz ] : Windows Compressed Metafile
[wpg ] : Word Perfect Graphics (images)
[wrl ] * : VRML2
[wzl ] : Winzle Puzzle
[x3f ] : Sigma RAW
[xar ] : Xara (images)
[xbm ] * : X11 Bitmap
[xcf ] : Gimp Bitmap
[xif ] : Xerox DIFF
[xim ] : Ximage
[xnf ] : XnView Frame
[xp0 ] : SecretPhotos puzzle
[xpm ] * : X11 Pixmap
[xwd ] : X Windows System dump
[xyz ] : Rm2K XYZ
[yuv411 ] : YUV 4:1:1
[yuv422 ] : YUV 4:2:2
[yuv444 ] : YUV 4:4:4
[zbr ] : Zoner Zebra Metafile (preview)
[zmf ] : Zoner Callisto Metafile (preview)
[zxhob ] : ZX Spectrum Hobetta
[zxscr ] : ZX Spectrum standard screen
[zxsna ] : ZX Spectrum Snapshot
[zzrough ] : ZZ Rough

View File

@@ -0,0 +1,22 @@
Please read the following terms and conditions before using this software. Use of this software indicates you accept the terms of this license agreement and warranty.
1. Disclaimer of warranty
XnView (or NConvert, XnView Shell Extension) is provided "as-is" and without warranty of any kind, express, implied or otherwise, including without limitation, any warranty of merchantability or fitness for a particular purpose.
In no event shall the author of this software be held liable for data loss, damages, loss of profits or any other kind of loss while using or misusing this software.
The software must not be modified, you may not decompile, disassemble.
2. License
XnView (or NConvert) is provided as freeware for private (non commercial), or educational use, including non-profit organization (i.e. schools, universities, public authorities, police, fire brigade, and hospitals).
In this case, you are granted the right to use and to make an unlimited number of copies of this software.
Company must purchase licenses to be able to use XnView (or NConvert).
XnView Shell Extension is provided as freeware
Copyright (C) 1997-2018 Pierre-e Gougelet. All rights reserved.

View File

@@ -19,10 +19,8 @@ using System;
using System.IO;
using System.Linq;
using System.Windows;
using ImageMagick;
using QuickLook.Common.Helpers;
using QuickLook.Common.Plugin;
using QuickLook.Plugin.ImageViewer.Exiv2;
namespace QuickLook.Plugin.ImageViewer
{
@@ -40,15 +38,13 @@ namespace QuickLook.Plugin.ImageViewer
// animated
".png", ".apng", ".gif"
};
private Size _imageSize;
private ImagePanel _ip;
private Meta _meta;
private NConvert _meta;
public int Priority => int.MaxValue;
public void Init()
{
new MagickImage().Dispose();
}
public bool CanHandle(string path)
@@ -58,10 +54,12 @@ namespace QuickLook.Plugin.ImageViewer
public void Prepare(string path, ContextObject context)
{
_imageSize = ImageFileHelper.GetImageSize(path, _meta = new Meta(path));
_meta = new NConvert(path);
if (!_imageSize.IsEmpty)
context.SetPreferredSizeFit(_imageSize, 0.8);
var size = _meta.GetSize();
if (!size.IsEmpty)
context.SetPreferredSizeFit(size, 0.8);
else
context.PreferredSize = new Size(800, 600);
@@ -71,11 +69,12 @@ namespace QuickLook.Plugin.ImageViewer
public void View(string path, ContextObject context)
{
_ip = new ImagePanel(context, _meta);
var size = _meta.GetSize();
context.ViewerContent = _ip;
context.Title = _imageSize.IsEmpty
context.Title = size.IsEmpty
? $"{Path.GetFileName(path)}"
: $"{Path.GetFileName(path)} ({_imageSize.Width}×{_imageSize.Height})";
: $"{Path.GetFileName(path)} ({size.Width}×{size.Height})";
LoadImage(_ip, path);

View File

@@ -62,9 +62,6 @@
<Reference Include="LibAPNG">
<HintPath>.\LibAPNG.dll</HintPath>
</Reference>
<Reference Include="Magick.NET-Q8-AnyCPU, Version=7.4.6.0, Culture=neutral, PublicKeyToken=2004825badfa91ec, processorArchitecture=MSIL">
<HintPath>..\..\packages\Magick.NET-Q8-AnyCPU.7.4.6\lib\net40\Magick.NET-Q8-AnyCPU.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
@@ -82,11 +79,10 @@
<Compile Include="AnimatedImage\GifAnimationProvider.cs" />
<Compile Include="AnimatedImage\AnimationProvider.cs" />
<Compile Include="AnimatedImage\ImageMagickProvider.cs" />
<Compile Include="exiv2\Meta.cs" />
<Compile Include="ImageFileHelper.cs" />
<Compile Include="ImagePanel.xaml.cs">
<DependentUpon>ImagePanel.xaml</DependentUpon>
</Compile>
<Compile Include="NConvert.cs" />
<Compile Include="Plugin.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
@@ -108,21 +104,33 @@
<Resource Include="Resources\background.png" />
</ItemGroup>
<ItemGroup>
<Content Include="exiv2\exiv2.dll">
<Content Include="NConvert\docs\Formats.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="exiv2\exiv2.exe">
<Content Include="NConvert\docs\help.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="exiv2\expat.dll">
<Content Include="NConvert\docs\license.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="exiv2\zlib.dll">
<Content Include="NConvert\docs\Plugins.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NConvert\docs\ReadMe.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NConvert\docs\Usage.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NConvert\docs\WhatsNew.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NConvert\nconvert.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="NConvert\Plugins\libwebp.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -1,187 +0,0 @@
// Copyright © 2018 Paddy Xu
//
// This file is part of QuickLook program.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using ImageMagick;
using QuickLook.Common.ExtensionMethods;
namespace QuickLook.Plugin.ImageViewer.Exiv2
{
public class Meta
{
private static readonly string ExivPath =
Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "exiv2\\exiv2.exe");
private readonly string _path;
private OrientationType _orientation = OrientationType.Undefined;
private Dictionary<string, string> _summary;
public Meta(string path)
{
_path = path;
}
public Dictionary<string, string> GetSummary()
{
if (_summary != null)
return _summary;
return _summary = Run($"\"{_path}\"", ": ");
}
public BitmapSource GetThumbnail(bool autoZoom = false)
{
GetOrientation();
var count = Run($"-pp \"{_path}\"", ",").Count;
if (count == 0)
return null;
var suc = Run($"-f -ep{count} -l \"{Path.GetTempPath().TrimEnd('\\')}\" \"{_path}\"", ",");
if (suc.Count != 0)
return null;
try
{
using (var image = new MagickImage(Path.Combine(Path.GetTempPath(),
$"{Path.GetFileNameWithoutExtension(_path)}-preview{count}.jpg")))
{
File.Delete(image.FileName);
if (_orientation == OrientationType.RightTop)
image.Rotate(90);
else if (_orientation == OrientationType.BottomRight)
image.Rotate(180);
else if (_orientation == OrientationType.LeftBotom)
image.Rotate(270);
if (!autoZoom)
return image.ToBitmapSource();
var size = GetSize();
var bitmap = new TransformedBitmap(image.ToBitmapSource(),
new ScaleTransform(size.Width / image.Width, size.Height / image.Height));
bitmap.Freeze();
return bitmap;
}
}
catch (Exception)
{
return null;
}
}
public Size GetSize()
{
if (_summary == null)
GetSummary();
if (!_summary.ContainsKey("Image size"))
return Size.Empty;
var width = int.Parse(_summary["Image size"].Split('x')[0].Trim());
var height = int.Parse(_summary["Image size"].Split('x')[1].Trim());
switch (GetOrientation())
{
case OrientationType.RightTop:
case OrientationType.LeftBotom:
return new Size(height, width);
default:
return new Size(width, height);
}
}
public OrientationType GetOrientation()
{
if (_orientation != OrientationType.Undefined)
return _orientation;
try
{
var ori = Run($"-g Exif.Image.Orientation -Pkv \"{_path}\"", "\\s{1,}");
if (ori?.ContainsKey("Exif.Image.Orientation") == true)
_orientation = (OrientationType) int.Parse(ori["Exif.Image.Orientation"]);
else
_orientation = OrientationType.TopLeft;
}
catch (Exception)
{
_orientation = OrientationType.TopLeft;
}
return _orientation;
}
private Dictionary<string, string> Run(string arg, string regexSplit)
{
try
{
string result;
using (var p = new Process())
{
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = ExivPath;
p.StartInfo.Arguments = arg;
p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
p.Start();
result = p.StandardOutput.ReadToEnd();
p.WaitForExit(1000);
}
return string.IsNullOrWhiteSpace(result)
? new Dictionary<string, string>()
: ParseResult(result, regexSplit);
}
catch (Exception)
{
return new Dictionary<string, string>();
}
}
private Dictionary<string, string> ParseResult(string result, string regexSplit)
{
var res = new Dictionary<string, string>();
result.Replace("\r\n", "\n").Split('\n').ForEach(l =>
{
if (string.IsNullOrWhiteSpace(l))
return;
var eles = Regex.Split(l, regexSplit + "");
if (eles.Length < 2)
return;
res.Add(eles[0].Trim(), eles.Skip(1).Aggregate((a, b) => $"{a}{regexSplit}{b}"));
});
return res;
}
}
}

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Magick.NET-Q8-AnyCPU" version="7.4.6" targetFramework="net462" />
</packages>