Ejemplo n.º 1
0
        protected override Document OnLoad(Stream input)
        {
            if (input == null || input.Length == 0)
            {
                return(null);
            }
            var length = input.Length;
            var bytes  = new byte[length];

            input.ProperRead(bytes, 0, (int)length);

            var dec = new WsqDecoder();

            using (var bitmap = dec.DecodeGdi(bytes))
            {
                var surface = new Surface(bitmap.Width, bitmap.Height);
                surface.CopyFromGdipBitmap(bitmap);

                var layer    = new BitmapLayer(surface);
                var document = new Document(layer.Width, layer.Height);

                document.Layers.Add(layer);

                document.DpuUnit = MeasurementUnit.Inch;
                document.DpuX    = (double)bitmap.HorizontalResolution;
                document.DpuY    = (double)bitmap.VerticalResolution;

                return(document);
            }
        }
Ejemplo n.º 2
0
        private void saveButton_Click(object sender, EventArgs e)
        {
            var path = Path.Combine(Helper.GetImagesPath(), "saved_fp.wsq");
            var enc  = new WsqEncoder();
            var dec  = new WsqDecoder();

            try
            {
                //var info = WsqCodec.GdiImageToImageInfo((Bitmap)inbox.Image);
                //var bytes = WsqCodec.Encode(info, 100, "This is David!");

                enc.Comment = "This is David!";
                var bytes = Encode(enc, (Bitmap)inbox.Image);

                File.WriteAllBytes(path, bytes);

                // Try to display the wsq image
                //var outinfo = WsqCodec.Decode(bytes);
                //if (outinfo != null && !outinfo.IsEmpty)
                //{
                //    var wsqbmp = WsqCodec.ImageInfoToGdiImage(outinfo);
                //    outbox.Image = wsqbmp;
                //}

                var outinfo = dec.Decode(bytes);
                var wsqbmp  = dec.DecodeGdi(bytes);
                outbox.Image = wsqbmp;

                var comments = WsqCodec.GetComments(bytes);

                outlogbox.AppendText(string.Format("Q            = {0}\r\n", nudQuality.Value));
                outlogbox.AppendText(string.Format("Cr           = {0}\r\n", nudCompressionRatio.Value));
                outlogbox.AppendText(string.Format("Br           = {0}\r\n", nudBitrate.Value));
                outlogbox.AppendText(string.Format("Size (bytes) = {0}\r\n", bytes.Length));
                LogInfo(outinfo, comments, outlogbox);
                outlogbox.AppendText("--------------------------------------------------------\r\n");
                outlogbox.Select(outlogbox.Text.Length, 0);
                outlogbox.ScrollToCaret();
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, string.Format("Error: {0}", ex), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Ejemplo n.º 3
0
        private void LoadWsq(string path)
        {
            var dec = new WsqDecoder();

            try
            {
                var bytes  = File.ReadAllBytes(path);
                var info   = dec.Decode(bytes);
                var bitmap = dec.DecodeGdi(bytes);
                pbox.Image = bitmap;

                var comments = WsqCodec.GetComments(bytes);

                LogInfo(info, comments);
                logbox.AppendText("--------------------------------------------------------\r\n");
                logbox.Select(logbox.Text.Length, 0);
                logbox.ScrollToCaret();
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, string.Format("Error: {0}", ex), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }