protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        if (!QueryHelper.ValidateHash("hash"))
        {
            URLHelper.Redirect(ResolveUrl("~/CMSMessages/Error.aspx?title=" + ResHelper.GetString("imageeditor.badhashtitle") + "&text=" + ResHelper.GetString("imageeditor.badhashtext")));
        }

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int num = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tfi = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            DataSet ds = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                tfi = new TempFileInfo(ds.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
 /// <summary>
 /// Saves current version of image and discards all other versions.
 /// </summary>
 /// <param name="includeExtensionInName">If true file name is returned with extension</param>
 public void SaveCurrentVersion(bool includeExtensionInName)
 {
     if (LoadingFailed)
     {
         SavingFailed = true;
     }
     else
     {
         if (imgHelper != null)
         {
             TempFileInfo tfi = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
             if (tfi != null)
             {
                 if (SaveImage != null)
                 {
                     tfi.Generalized.EnsureBinaryData();
                     SaveImage((includeExtensionInName ? tfi.FileName + "." + tfi.FileExtension.TrimStart('.') : tfi.FileName), tfi.FileExtension, tfi.FileMimeType, tfi.FileTitle, tfi.FileDescription, tfi.FileBinary, tfi.FileImageWidth, tfi.FileImageHeight);
                 }
             }
         }
         if (!SavingFailed)
         {
             // Delete all versions
             TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID);
         }
     }
 }
    protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        if (!QueryHelper.ValidateHash("hash"))
        {
            URLHelper.Redirect(ResolveUrl("~/CMSMessages/Error.aspx?title=" + ResHelper.GetString("imageeditor.badhashtitle") + "&text=" + ResHelper.GetString("imageeditor.badhashtext")));
        }

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int  num        = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tfi = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            DataSet ds = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                tfi = new TempFileInfo(ds.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int num = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tempFile = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            var data = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(data))
            {
                tempFile = new TempFileInfo(data.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        DebugHelper.SetContext("GetImageVersion");

        // Get the parameters
        Guid editorGuid = QueryHelper.GetGuid("editorguid", Guid.Empty);
        int  num        = QueryHelper.GetInteger("versionnumber", -1);

        // Load the temp file info
        if (num >= 0)
        {
            tfi = TempFileInfoProvider.GetTempFileInfo(editorGuid, num);
        }
        else
        {
            DataSet ds = TempFileInfoProvider.GetTempFiles(null, "FileNumber DESC", 1, null);
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                tfi = new TempFileInfo(ds.Tables[0].Rows[0]);
            }
        }

        // Send the data
        SendFile();

        DebugHelper.ReleaseContext();
    }
 /// <summary>
 /// Processes the redo action.
 /// </summary>
 public void ProcessRedo()
 {
     CurrentVersion++;
     tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
     InitFileInfo();
     PopulateConversionDropdownlist();
     PropagateChanges(false);
 }
Exemple #7
0
        private void GetTempFileInfo(FileInformation file)
        {
            string path      = file.Path;
            string fileName  = Path.GetFileName(path);
            string extension = Path.GetExtension(path);

            tempFile = new TempFileInfo
            {
                Path             = file.Path,
                FileName         = Path.GetFileName(file.Path),
                BaseName         = fileName.TrimEnd(extension.ToCharArray()),
                Directory        = Path.GetDirectoryName(file.Path),
                Extension        = extension,
                CreationDateTime = file.CreationDateTime.ToString(),
            };
        }
Exemple #8
0
        public async Task <InfoModel <TempFileInfo> > UploadForActivityTempFile([FromForm] IFormFile file)
        {
            UserTempDir tempFileDir = (await UserInfoForLogin).GetUserTempDirForActivity();

            TempFileInfo tempFileInfo = new TempFileInfo();

            if (!tempFileDir.SaveTempFile(file, tempFileInfo))
            {
                throw new Exception("上传失败!");
            }

            return(new InfoModel <TempFileInfo>
            {
                Data = tempFileInfo
            });
        }
        public async Task <WavStream> ConvertAsync(Stream stream)
        {
            var section    = configuration.GetSection("AudioToTextService.Core.WavAudioConverter");
            var ffmpegPath = section["ffmpeg"];

            using (var inputFile = await TempFileInfo.GenTempFileAsync(stream))
            {
                var outputFile = Path.ChangeExtension(Path.GetTempFileName(), ".wav");
                var cmd        = String.Format(ToWavCmdLine, inputFile.FileName, outputFile);

                ProcessStartInfo psi = new ProcessStartInfo(ffmpegPath, cmd)
                {
                    UseShellExecute        = false,
                    CreateNoWindow         = true,
                    WorkingDirectory       = Directory.GetCurrentDirectory(),
                    RedirectStandardOutput = true,
                    RedirectStandardError  = true
                };

                using (Process p = Process.Start(psi))
                {
                    //* Read the output (or the error)
                    string ffmpegOutput    = p.StandardOutput.ReadToEnd();
                    string ffmpegErrOutput = p.StandardError.ReadToEnd();

                    p.WaitForExit();

                    if (p.ExitCode != 0)
                    {
                        throw new Exception(ffmpegOutput + ffmpegErrOutput);
                    }

                    TimeSpan ts = ParseTimeFromFFMpegOutput(ffmpegErrOutput);

                    return(new WavStream(outputFile, FileMode.Open, FileAccess.Read, ts));
                }
            }
        }
 /// <summary>
 /// Processes the undo action.
 /// </summary>
 public void ProcessUndo()
 {
     CurrentVersion--;
     tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
     InitFileInfo();
     PopulateConversionDropdownlist();
     PropagateChanges(false);
 }
    /// <summary>
    /// Creates new version of image.
    /// </summary>
    /// <param name="data">Image data</param>
    /// <param name="name">File name</param>
    /// <param name="title">File title</param>
    /// <param name="description">File description</param>
    public void CreateVersion(byte[] data, string name, string title, string description)
    {
        if (IsUndoRedoPossible())
        {
            // If current
            if ((CurrentVersion) >= MaxVersionsCount)
            {
                ShowError(GetString("img.errors.maxversion"));
                LoadingFailed = true;
            }
            else if (ImgHelper != null)
            {
                try
                {
                    // Set the imagehelper to new data
                    ImgHelper = new ImageHelper(data);
                    CurrentVersion++;

                    // Save new file version
                    TempFileInfo tfi = new TempFileInfo();
                    tfi.FileDirectory = "ImageEditor";
                    tfi.FileBinary = data;
                    tfi.FileParentGUID = InstanceGUID;
                    tfi.FileExtension = "." + currentFormat;
                    tfi.FileName = name;
                    tfi.FileTitle = title;
                    tfi.FileDescription = description;
                    tfi.FileNumber = CurrentVersion;
                    tfi.FileMimeType = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);
                    tfi.FileImageWidth = ImgHelper.ImageWidth;
                    tfi.FileImageHeight = ImgHelper.ImageHeight;
                    tfi.FileSize = ImgHelper.SourceData.Length;
                    tfi.FileSiteName = SiteContext.CurrentSiteName;

                    tempFile = tfi;

                    SetScriptProperties(true);

                    // Delete all next temporary files before creating new
                    TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID, CurrentVersion - 1, MaxVersionsCount);

                    // Save new temporary file
                    TempFileInfoProvider.SetTempFileInfo(tfi);

                    // Oldest version is always current if creating new version
                    OldestVersion = CurrentVersion;
                }
                catch (Exception ex)
                {
                    ShowError(GetString("img.errors.processing"),ex.Message);
                    EventLogProvider.LogException("Image editor", "LOAD", ex);
                    LoadingFailed = true;
                }
            }
        }
        else
        {
            if (SaveImage != null)
            {
                string extension = "." + currentFormat;
                string mimetype = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);

                ImgHelper.LoadImage(data);

                SaveImage(name, extension, mimetype, title, description, data, ImgHelper.ImageWidth, ImgHelper.ImageHeight);
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        RegisterTrimScript();

        if (LoadImageType != null)
        {
            LoadImageType();
        }

        ltlScript.Text = "";

        if (!URLHelper.IsPostback())
        {
            // Display image if available data
            if (imageType != ImageHelper.ImageTypeEnum.None)
            {
                if (InitializeProperties != null)
                {
                    InitializeProperties();
                }

                if (!LoadingFailed)
                {
                    currentFormat = imgHelper.ImageFormatToString();
                }
            }

            // Create first version on first load (original)
            if (ImgHelper != null)
            {
                CreateVersion(ImgHelper.SourceData);
            }
        }
        else
        {
            // Load current version to edit
            tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
            if (tempFile != null)
            {
                tempFile.Generalized.EnsureBinaryData();
                ImgHelper = new ImageHelper(tempFile.FileBinary);
                currentFormat = imgHelper.ImageFormatToString();
            }

            if (!IsUndoRedoPossible() && (InitializeProperties != null))
            {
                InitializeProperties();
            }

            if (!LoadingFailed && (imgHelper != null))
            {
                currentFormat = imgHelper.ImageFormatToString();
            }
        }

        InitializeStrings(!RequestHelper.IsPostBack());
        InitializeFields();

        if (!URLHelper.IsPostback())
        {
            // Initialize labels depending on image type in parent control
            if (InitializeLabels != null)
            {
                InitializeLabels(true);
            }
        }

        // Show tab 'Properties'
        if (ValidationHelper.GetBoolean(hdnShowProperties.Value, false))
        {
            ScriptHelper.RegisterStartupScript(this, typeof(string), "ShowProperties", ScriptHelper.GetScript("ShowProperties(true, '" + hdnShowProperties.ClientID + "');"));
        }

        if (!IsPreview)
        {
            // Enable or disable meta data editor
            metaDataEditor.Enabled = Enabled;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        RegisterTrimScript();

        if (LoadImageType != null)
        {
            LoadImageType();
        }

        ltlScript.Text = "";

        if (!URLHelper.IsPostback())
        {
            // Display image if available data
            if (imageType != ImageHelper.ImageTypeEnum.None)
            {
                if (InitializeProperties != null)
                {
                    InitializeProperties();
                }

                if (!LoadingFailed)
                {
                    currentFormat = imgHelper.ImageFormatToString();
                }
            }

            // Create first version on first load (original)
            if (ImgHelper != null)
            {
                CreateVersion(ImgHelper.SourceData);
            }
        }
        else
        {
            // Load current version to edit
            tempFile = TempFileInfoProvider.GetTempFileInfo(InstanceGUID, CurrentVersion);
            if (tempFile != null)
            {
                tempFile.Generalized.EnsureBinaryData();
                ImgHelper     = new ImageHelper(tempFile.FileBinary);
                currentFormat = imgHelper.ImageFormatToString();
            }

            if (!IsUndoRedoPossible() && (InitializeProperties != null))
            {
                InitializeProperties();
            }

            if (!LoadingFailed)
            {
                currentFormat = imgHelper.ImageFormatToString();
            }
        }

        InitializeStrings(!RequestHelper.IsPostBack());
        InitializeFields();

        if (!URLHelper.IsPostback())
        {
            // Initialize labels depending on image type in parent control
            if (InitializeLabels != null)
            {
                InitializeLabels(true);
            }
        }

        // Show tab 'Properties'
        if (ValidationHelper.GetBoolean(hdnShowProperties.Value, false))
        {
            ScriptHelper.RegisterStartupScript(this, typeof(string), "ShowProperties", ScriptHelper.GetScript("ShowProperties(true, '" + hdnShowProperties.ClientID + "');"));
        }

        if (!IsPreview)
        {
            // Enable or disable meta data editor
            metaDataEditor.Enabled = Enabled;
        }
    }
Exemple #14
0
        /// <summary>
        /// Проанализировать файл. Считать и распарсить заголовок файла, заголовки асканов
        /// </summary>
        /// <param name="fi"></param>
        /// <returns></returns>
        private long AnalyzeFile(FileInfo fi)
        {
            long headerLength = -1;

            using (FileStream fs = new FileStream(fi.FullName, FileMode.Open))
            {
                using (BinaryReader bReader = new BinaryReader(fs))
                {
                    // read file header
                    int bscanLength = 0;
                    TempFileInfo tempInfo = ReadFileHeader(bReader, fi, out bscanLength);
                    headerLength = fs.Position;

                    // read file ascan headers
                    ReadFileDataSummary(bReader, fi, tempInfo, bscanLength);

                    // save headers
                    tempFileInfo = tempInfo;
                }
            }
            return headerLength;
        }
Exemple #15
0
        /// <summary>
        /// Считать заголовок файла
        /// </summary>
        /// <param name="bReader"></param>
        /// <param name="fi"></param>
        /// <param name="bscanLength"></param>
        /// <returns></returns>
        private TempFileInfo ReadFileHeader(BinaryReader bReader, FileInfo fi, out int bscanLength)
        {
            // file info
            short fileVersion = bReader.ReadInt16();
            bscanLength = bReader.ReadInt32();
            string comment = bReader.ReadString();
            string timeCreated = bReader.ReadString();

            // python settings
            uint startType = bReader.ReadUInt32();
            uint bufferSize = bReader.ReadUInt32();
            double frequency = bReader.ReadDouble();
            uint control = bReader.ReadUInt32();
            uint preHistory = bReader.ReadUInt32();
            uint startDelay = bReader.ReadUInt32();
            uint hysteresis = bReader.ReadUInt32();
            uint packetNumber = bReader.ReadUInt32();
            double threshold = bReader.ReadDouble();
            uint controlSynchro = bReader.ReadUInt32();
            uint waitTime = bReader.ReadUInt32();
            int channelsNum = bReader.ReadInt32();
            RshChannel[] channels = new RshChannel[channelsNum];
            for (int i = 0; i < channels.Length; i++)
            {
                channels[i] = new RshChannel();
                channels[i].control = bReader.ReadUInt32();
                channels[i].delta = bReader.ReadDouble();
                channels[i].gain = bReader.ReadUInt32();
            }
            uint digitalPort = bReader.ReadUInt32();

            // survey settings
            double dt = bReader.ReadDouble();
            double dx = bReader.ReadDouble();
            double eps = bReader.ReadDouble();
            int zoom = bReader.ReadInt32();
            string palette = bReader.ReadString();
            int repRate = bReader.ReadInt32();

            int marksCount = bReader.ReadInt32();
            Dictionary<int, int> Marks = new Dictionary<int, int>();
            for (int i = 0; i < marksCount; i++)
                Marks.Add(bReader.ReadInt32(), bReader.ReadInt32());

            PythonSettings pythset = new PythonSettings(
                startType,
                bufferSize,
                frequency,
                control,
                preHistory,
                startDelay,
                hysteresis,
                packetNumber,
                threshold,
                controlSynchro,
                channels,
                waitTime,
                digitalPort);

            TempFileInfo tempInfo = new TempFileInfo(fileVersion, pythset, Marks);

            Settings.Init(zoom, dx, dt, eps, palette, repRate, Settings.CalibrationProps);

            return tempInfo;
        }
Exemple #16
0
        private void ReadFileDataSummary(BinaryReader bReader, FileInfo fi, TempFileInfo tempFileInfo, int bscanLength)
        {
            List<int> ascanLengths = new List<int>(bscanLength);

            for (int i = 0; i < bscanLength; i++)
            {
                ascanLengths.Add(bReader.ReadInt32());
                bReader.ReadBytes(ascanLengths[i] * 2);
            }
            tempFileInfo.ascanLengths = ascanLengths;
        }
    /// <summary>
    /// Creates new version of image.
    /// </summary>
    /// <param name="data">Image data</param>
    /// <param name="name">File name</param>
    /// <param name="title">File title</param>
    /// <param name="description">File description</param>
    public void CreateVersion(byte[] data, string name, string title, string description)
    {
        if (IsUndoRedoPossible())
        {
            // If current
            if ((CurrentVersion) >= MaxVersionsCount)
            {
                ShowError(GetString("img.errors.maxversion"));
                LoadingFailed = true;
            }
            else if (ImgHelper != null)
            {
                try
                {
                    // Set the imagehelper to new data
                    ImgHelper = new ImageHelper(data);
                    CurrentVersion++;

                    // Save new file version
                    TempFileInfo tfi = new TempFileInfo();
                    tfi.FileDirectory   = "ImageEditor";
                    tfi.FileBinary      = data;
                    tfi.FileParentGUID  = InstanceGUID;
                    tfi.FileExtension   = "." + currentFormat;
                    tfi.FileName        = name;
                    tfi.FileTitle       = title;
                    tfi.FileDescription = description;
                    tfi.FileNumber      = CurrentVersion;
                    tfi.FileMimeType    = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);
                    tfi.FileImageWidth  = ImgHelper.ImageWidth;
                    tfi.FileImageHeight = ImgHelper.ImageHeight;
                    tfi.FileSize        = ImgHelper.SourceData.Length;
                    tfi.FileSiteName    = SiteContext.CurrentSiteName;

                    tempFile = tfi;

                    SetScriptProperties(true);

                    // Delete all next temporary files before creating new
                    TempFileInfoProvider.DeleteTempFiles(TempFileInfoProvider.IMAGE_EDITOR_FOLDER, InstanceGUID, CurrentVersion - 1, MaxVersionsCount);

                    // Save new temporary file
                    TempFileInfoProvider.SetTempFileInfo(tfi);

                    // Oldest version is always current if creating new version
                    OldestVersion = CurrentVersion;
                }
                catch (Exception ex)
                {
                    ShowError(GetString("img.errors.processing"), ex.Message);
                    EventLogProvider.LogException("Image editor", "LOAD", ex);
                    LoadingFailed = true;
                }
            }
        }
        else
        {
            if (SaveImage != null)
            {
                string extension = "." + currentFormat;
                string mimetype  = "image/" + (currentFormat == "jpg" ? "jpeg" : currentFormat);

                ImgHelper.LoadImage(data);

                SaveImage(name, extension, mimetype, title, description, data, ImgHelper.ImageWidth, ImgHelper.ImageHeight);
            }
        }
    }
Exemple #18
0
        public List<short[]> ReadTempFilePart(TempFileInfo _tempFileInfo, int startAscan, int length)
        {
            Logging.WriteToLog("StationaryFile.ReadTempFilePart()");
            if (startAscan + length > _tempFileInfo.ascanLengths.Count)
                throw new NullReferenceException("Trying to read ascans that don't exist");

            List<short[]> bscan = new List<short[]>();

            // count the offset
            int skip = 0;
            for (int i = 0; i < startAscan; i++)
                skip += _tempFileInfo.ascanLengths[i] * 2;

            // read data
            bscan.Clear();
            using (FileStream fs = new FileStream(this.curFile.FullName, FileMode.Open))
            {
                fs.Position = skip;
                using (BinaryReader bReader = new BinaryReader(fs))
                {
                    for (int i = 0; i < length; i++)
                    {
                        short[] ascan = new short[_tempFileInfo.ascanLengths[startAscan + i]];
                        for (int j = 0; j < ascan.Length; j++)
                            ascan[j] = bReader.ReadInt16();
                        bscan.Add(ascan);
                    }
                }
            }

            return bscan;
        }