Changeset 11890


Ignore:
Timestamp:
Aug 2, 2011, 4:50:49 PM (10 years ago)
Author:
bayral
Message:

First draw of pwg.image.add and pwg.imae.addtrunck.
addtrunck seem to be ok, but image.add return server error 500.

Location:
extensions/PiwigoLib
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • extensions/PiwigoLib/PiwigoLib/DTO/PwgImage.cs

    r11872 r11890  
    4242        public String Author { get; set; }
    4343        public Int64  ImageFileSize { get; set; }
    44         public DateTime DateupdateMetaData { get; set; }
     44        public DateTime DateUpdateMetaData { get; set; }
    4545        public Boolean  hasHighDef { get; set; }
    4646        public Int64 HighDefFileSize { get; set; }
    4747        public Int32 ConfidentialLevel { get; set; }
    48         public String mdSum { get; set; }
     48        public String md5Sum { get; set; }
    4949        public Int32 UserIdAddedBy { get; set; }
    5050        public String Name { get; set; }
     
    7171    public class PwgComment
    7272    {
    73         public Int32 Id { get; set; }
     73        public Int32    Id          { get; set; }
    7474        public DateTime CommentDate { get; set; }
    75         public String Author { get; set; }
    76         public String Content { get; set; }
     75        public String   Author      { get; set; }
     76        public String   Content    { get; set; }
    7777    }
    7878
    7979    public class PwgImageRate
    8080    {
    81         public Int32 Count { get; set; }
     81        public Int32  Count { get; set; }
    8282        public Double Average { get; set; }
    8383        public Double Stdev { get; set; }
  • extensions/PiwigoLib/PiwigoLib/IService/IPwgImagesService.cs

    r11872 r11890  
    99        Boolean DeleteImage(Int32 imageId, String SecurityToken);
    1010        Com.Piwigo.Lib.DTO.PwgImageInfo getImageInfo(Int32 imageId, Int32? commentPage, Int32? commentsPerPage);
     11        Boolean addImage(System.IO.FileInfo highResFile, System.IO.FileInfo lowResFile, System.IO.FileInfo thumbFile, String imageName, String imageAuthor, DateTime creationDate,
     12            String authorComment, System.Collections.Generic.List<String> lstCategories, System.Collections.Generic.List<String> lstTags, Com.Piwigo.Lib.DTO.PwgConfidentLevelEnum? confidentLevel);
    1113    }
    1214}
  • extensions/PiwigoLib/PiwigoLib/PiwigoLib.csproj

    r11850 r11890  
    5151  </ItemGroup>
    5252  <ItemGroup>
     53    <Compile Include="DTO\PwgConfidentLevelEnum.cs" />
     54    <Compile Include="DTO\PwgFileTypeEnum.cs" />
    5355    <Compile Include="DTO\PwgCategoryPhotoDeletionModeEnum.cs" />
    5456    <Compile Include="DTO\PwgCategory.cs" />
     
    5961    <Compile Include="DTO\PwgSession.cs" />
    6062    <Compile Include="Properties\AssemblyInfo.cs" />
     63    <Compile Include="Proxy\Helper\PwgBase64Helper.cs" />
    6164    <Compile Include="Proxy\PwgImagesProxy.cs" />
    6265    <Compile Include="Proxy\PwgCategoriesProxy.cs" />
  • extensions/PiwigoLib/PiwigoLib/Proxy/PwgImagesProxy.cs

    r11872 r11890  
    1515
    1616        /*
    17          * pwg.images.add
    18          * pwg.images.addChunk
     17         * pwg.images.add                   pwg_images_add
     18         * pwg.images.addChunk              pwg_images_addChunk
    1919         * pwg.images.addComment
    2020         * pwg.images.addFile               
    21          * pwg.images.addSimple            pwg_images_addSimple
     21         * pwg.images.addSimple             pwg_images_addSimple
    2222         * pwg.images.checkFiles
    2323         * pwg.images.checkUpload
    24          * pwg.images.delete               pwg_images_delete
     24         * pwg.images.delete                pwg_images_delete
    2525         * pwg.images.exist
    26          * pwg.images.getInfo
     26         * pwg.images.getInfo               pwg_images_getInfos
    2727         * pwg.images.rate                  pwg_images_rate
    2828         * pwg.images.regenerateThumbnail
     
    3131         * pwg.images.setPrivacyLevel
    3232 * */
     33
     34        static internal PwgBaseProxyReponse pwg_images_add(String fileGuid, String thunbGuid, String HighresGuid,
     35            String imageGuid,  String imageFilename, String imageName, String imageAuthor, DateTime creationDate, 
     36            String authorComment,List<String> lstCategories, List<String> lstTags, PwgConfidentLevelEnum? confidentLevel)
     37        {
     38            PwgBaseProxyReponse response = null;
     39            try
     40            {           
     41                StringBuilder data = new StringBuilder();
     42                data.Append("method=pwg.images.add");
     43                Boolean firstOcc = false;
     44                PwgProxyReponseHelper.buildQueryFromValue<String>(fileGuid, "file_sum", ref firstOcc, data);
     45                PwgProxyReponseHelper.buildQueryFromValue<String>(thunbGuid, "thumbnail_sum", ref firstOcc, data);
     46                PwgProxyReponseHelper.buildQueryFromValue<String>(HighresGuid, "high_sum", ref firstOcc, data);
     47                PwgProxyReponseHelper.buildQueryFromValue<String>(imageGuid, "original_sum", ref firstOcc, data);
     48                PwgProxyReponseHelper.buildQueryFromValue<String>(imageFilename, "original_filename", ref firstOcc, data);
     49                PwgProxyReponseHelper.buildQueryFromValue<String>(imageName, "name", ref firstOcc, data);
     50                PwgProxyReponseHelper.buildQueryFromValue<String>(imageAuthor, "author", ref firstOcc, data);
     51                PwgProxyReponseHelper.buildQueryFromValue<String>(authorComment, "comment", ref firstOcc, data);
     52                PwgProxyReponseHelper.buildQueryFromArray<String>(lstCategories, "categories", ref firstOcc, data);
     53                PwgProxyReponseHelper.buildQueryFromArray<String>(lstTags, "tag_ids", ref firstOcc, data);
     54                PwgProxyReponseHelper.buildQueryFromValue<Int32>((int?)confidentLevel, "level", ref firstOcc, data);
     55                PwgProxyReponseHelper.buildQueryFromValue<DateTime>(creationDate, "date_creation", ref firstOcc, data);
     56
     57                response = PwgGenericProxy<PwgBaseProxyReponse>.Post(
     58                    PwgConfigProxy.PwgServeurUri,
     59                    data.ToString());
     60            }
     61            catch (Exception ex)
     62            {
     63                throw new PwgProxyException("pwg_images_rate", ex);
     64            }
     65
     66            return response;
     67        }
     68
     69       /// <summary>
     70       /// pwg.images.addChunk
     71       /// </summary>
     72       /// <param name="strb64Data"></param>
     73       /// <param name="uniqueId"></param>
     74       /// <param name="fileType"></param>
     75       /// <param name="?"></param>
     76       /// <param name="chunckNumber"></param>
     77       /// <returns></returns>
     78        static internal PwgBaseProxyReponse pwg_images_addChunk(String strb64Data, String uniqueId, PwgFileTypeEnum fileType, Int32 chunckNumber )
     79        {
     80            PwgBaseProxyReponse response = null;
     81            try
     82            {
     83               
     84                StringBuilder data = new StringBuilder();
     85                data.Append("method=pwg.images.addChunk");
     86                Boolean firstOcc = false;
     87                PwgProxyReponseHelper.buildQueryFromValue<String>(strb64Data, "data", ref firstOcc, data);
     88                PwgProxyReponseHelper.buildQueryFromValue<String>(uniqueId, "original_sum", ref firstOcc, data);
     89                PwgProxyReponseHelper.buildQueryFromValue<PwgFileTypeEnum>(fileType, "type", ref firstOcc, data);
     90                PwgProxyReponseHelper.buildQueryFromValue<Int32>(chunckNumber, "position", ref firstOcc, data);
     91
     92                response = PwgGenericProxy<PwgBaseProxyReponse>.Post(
     93                    PwgConfigProxy.PwgServeurUri,
     94                    data.ToString());
     95            }
     96            catch (Exception ex)
     97            {
     98                throw new PwgProxyException("pwg_images_rate", ex);
     99            }
     100
     101            return response;
     102        }
    33103
    34104        /// <summary>
  • extensions/PiwigoLib/PiwigoLib/Proxy/Response/PwgImagesProxyResponse.cs

    r11872 r11890  
    2929        public String Stdev { get; set; }
    3030    }
     31     
    3132
    3233    [Serializable()]
     
    6263        [XmlArrayItem("category")]
    6364        public PwgCategoryProxyResponse[] Categories { get; set; }
    64 
    6565    }
    6666
     
    7575    [Serializable()]
    7676    [XmlRoot(ElementName = "image")]
    77     public class PwgImageInfoImageProxyResponse
     77    public class PwgImageInfoImageProxyResponse : PwgImageProxyResponse
    7878    {
    79         [XmlAttribute(AttributeName = "id")]
    80         public Int32 Id { get; set; }
    81         [XmlAttribute(AttributeName = "width")]
    82         public Int32 Width { get; set; }
    83         [XmlAttribute(AttributeName = "height")]
    84         public Int32 Height { get; set; }
    85         [XmlAttribute(AttributeName = "file")]
    86         public String File { get; set; }
    87         [XmlAttribute(AttributeName = "tn_url")]
    88         public String UrlThunb { get; set; }
    89         [XmlAttribute(AttributeName = "element_url")]
    90         public String UrlElement { get; set; }
    91         [XmlAttribute(AttributeName = "high_url")]
    92         public String UrlHighDef { get; set; }
    93         [XmlAttribute(AttributeName = "hit")]
    94         public Int64 Counter { get; set; }
    95         [XmlAttribute(AttributeName = "date_creation")]
    96         public String CreatingDate { get; set; }
    97         [XmlAttribute(AttributeName = "date_available")]
    98         public String AvailableDate { get; set; }
    99         [XmlAttribute(AttributeName = "tn_ext")]
    10079        public String ExtThumbail { get; set; }
    10180        [XmlAttribute(AttributeName = "author")]
     
    11291        public Int32 ConfidentialLevel { get; set; }
    11392        [XmlAttribute(AttributeName = "md5sum")]
    114         public String mdSum { get; set; }
     93        public String md5Sum { get; set; }
    11594        [XmlAttribute(AttributeName = "added_by")]
    11695        public Int32 UserIdAddedBy { get; set; }
     
    11897        [XmlElement("name")]
    11998        public String Name { get; set; }
    120 
    121         [XmlArray("tags")]
    122         [XmlArrayItem("tag")]
    123         public PwgTagProxyResponse[] Tags { get; set; }
    124 
    125         [XmlArray("categories")]
    126         [XmlArrayItem("category")]
    127         public PwgCategoryProxyResponse[] Categories { get; set; }
    12899
    129100        [XmlElement("rates")]
     
    134105
    135106        [XmlElement("comment_post")]
    136         public PwgPostCommentSecurityInfo PostCommenSecurityData { get; set; }
     107        public PwgPostCommentSecurityInfo PostCommentSecurityData { get; set; }
    137108    }
    138109
  • extensions/PiwigoLib/PiwigoLib/Service/PwgImagesService.cs

    r11872 r11890  
    8282        }
    8383
     84        public Boolean addImage(FileInfo highResFile, FileInfo lowResFile, FileInfo thumbFile, String imageName, String imageAuthor, DateTime creationDate,
     85            String authorComment, List<String> lstCategories, List<String> lstTags, PwgConfidentLevelEnum? confidentLevel)
     86        {
     87            Boolean returnValue = false;
     88
     89            try
     90            {
     91                String fileGuid =  uploadImageByChunk(lowResFile, PwgFileTypeEnum.LowRes);
     92                String thunbGuid = uploadImageByChunk(thumbFile, PwgFileTypeEnum.Thumb);
     93                String HighresGuid = uploadImageByChunk(highResFile, PwgFileTypeEnum.HighDef);
     94                String imageGuid = (highResFile != null ? HighresGuid : fileGuid);  //Guid.NewGuid().ToString();
     95                String imageFilename = (highResFile != null ? highResFile.Name : lowResFile.Name);
     96
     97                PwgBaseProxyReponse response = PwgImagesProxy.pwg_images_add( fileGuid, thunbGuid, HighresGuid,
     98                                                    imageGuid,  imageFilename, imageName, imageAuthor, creationDate, 
     99                                                    authorComment, lstCategories, lstTags, confidentLevel);
     100
     101                if (response.Retour != PwgBaseProxyReponseRetourEnum.Ok)
     102                {
     103                    if (response.Erreur != null)
     104                    {
     105                        throw new PwgServiceException("addImage, the server has return the error.",
     106                            response.Erreur.Code,
     107                            response.Erreur.Message);
     108                    }
     109                    else
     110                    {
     111                        throw new PwgServiceException("addImage : a error occurs during server process.");
     112                    }
     113                }
     114                else
     115                {
     116                    returnValue = true;
     117                }
     118            }
     119            catch (PwgProxyException ex)
     120            {
     121                throw new PwgServiceException("addImage : a error is raised by proxy.", ex);
     122            }
     123            return returnValue;
     124        }
     125
     126        public String uploadImageByChunk(FileInfo imageFile, PwgFileTypeEnum fileType)
     127        {
     128            byte[] buffer = new byte[5000];
     129            string strGuid = String.Empty; ;
     130            int read;
     131            int chunkNumber = 1;
     132
     133            try
     134            {
     135                if (imageFile != null)
     136                {
     137                    FileStream fs = File.OpenRead(imageFile.FullName);
     138                    strGuid = Com.Piwigo.Lib.Proxy.Helper.PwgBase64Helper.GetphpMd5Sum(fs);
     139                   
     140                    fs.Seek(0, SeekOrigin.Begin);
     141                    while ((read = fs.Read(buffer, 0, buffer.Length)) > 0)
     142                    {
     143                        String strB64Data = Com.Piwigo.Lib.Proxy.Helper.PwgBase64Helper.base64Encode(buffer);
     144                        PwgBaseProxyReponse response = PwgImagesProxy.pwg_images_addChunk(strB64Data, strGuid, fileType, chunkNumber);
     145
     146                        chunkNumber += 1;
     147
     148                        if (response.Retour != PwgBaseProxyReponseRetourEnum.Ok)
     149                        {
     150                            if (response.Erreur != null)
     151                            {
     152                                throw new PwgServiceException("uploadImageByChunk, the server has return the error.",
     153                                    response.Erreur.Code,
     154                                    response.Erreur.Message);
     155                            }
     156                            else
     157                            {
     158                                throw new PwgServiceException("uploadImageByChunk : a error occurs during server process.");
     159                            }
     160                        }
     161                    }
     162                }
     163                else
     164                {
     165                    strGuid = String.Empty;
     166                }
     167            }
     168            catch (PwgProxyException ex)
     169            {
     170                throw new PwgServiceException("uploadImageByChunk : a error is raised by proxy.", ex);
     171            }
     172            return strGuid;
     173        }
     174
     175        /// <summary>
     176        /// Delete a image
     177        /// </summary>
     178        /// <param name="imageId"></param>
     179        /// <param name="SecurityToken"></param>
     180        /// <returns></returns>
    84181        public Boolean DeleteImage(Int32 imageId, String SecurityToken)
    85182        {
     
    139236                else
    140237                {
    141                     //returnValue = ConvertProxyResponseToDTO(response);
     238                    returnValue = ConvertProxyResponseToDTO(response.ImageInfo);
    142239                }
    143240            }
     
    148245            return returnValue;
    149246        }       
     247
    150248        /// <summary>
    151249        /// private: convert response to dto object
     
    234332                }
    235333            }
     334        }
     335
     336        /// <summary>
     337        /// private: convert response to dto object
     338        /// </summary>
     339        /// <param name="response"></param>
     340        /// <param name="session"></param>
     341        internal static PwgImageInfo ConvertProxyResponseToDTO(PwgImageInfoImageProxyResponse response)
     342        {
     343            PwgImageInfo returnValue = null;
     344
     345            try
     346            {
     347                PwgImage pwgImg = ConvertProxyResponseToDTO(response as PwgImageProxyResponse as PwgImageProxyResponse);
     348                returnValue = new PwgImageInfo(){   Id           = pwgImg.Id,
     349                                                    Width        = pwgImg.Width,
     350                                                    Height       = pwgImg.Height,
     351                                                    File         = pwgImg.File ,
     352                                                    UrlThunb     = pwgImg.UrlThunb,
     353                                                    UrlElement   = pwgImg.UrlElement,
     354                                                    UrlHighDef   = pwgImg.UrlHighDef,
     355                                                    Counter      = pwgImg.Counter,
     356                                                    CreatingDate = pwgImg.CreatingDate,
     357                                                    AvailableDate= pwgImg.AvailableDate,
     358                                                    Tags         = pwgImg.Tags,
     359                                                    Categories   = pwgImg.Categories};
     360
     361               returnValue.ExtThumbail       = response.ExtThumbail       ;
     362               returnValue.Author            = response.Author            ;
     363               returnValue.ImageFileSize     = response.ImageFileSize     ;
     364               returnValue.hasHighDef        = response.hasHighDef        ;
     365               returnValue.HighDefFileSize   = response.HighDefFileSize   ;
     366               returnValue.ConfidentialLevel = response.ConfidentialLevel ;
     367               returnValue.md5Sum            = response.md5Sum            ;
     368               returnValue.UserIdAddedBy     = response.UserIdAddedBy     ;
     369               returnValue.Name              = response.Name              ;
     370               
     371                if (response.DateUpdateMetaData != null)
     372               {
     373                   DateTime tryDate;
     374                   if (DateTime.TryParse(response.DateUpdateMetaData, out tryDate))
     375                   {
     376                       returnValue.DateUpdateMetaData = tryDate;
     377                   }
     378               }
     379
     380               if (response.ImageRate != null)
     381               {
     382                    returnValue.ImageRate = ConvertProxyResponseToDTO(response.ImageRate);
     383               }
     384               if (response.ImageComments != null)
     385               {
     386                    returnValue.ImageComments = ConvertProxyResponseToDTO(response.ImageComments);
     387               }
     388               if (response.PostCommentSecurityData != null)
     389               {
     390                   returnValue.PostCommenSecurityData = ConvertProxyResponseToDTO(response.PostCommentSecurityData);
     391               }
     392            }
     393            catch (Exception ex)
     394            {
     395                throw new PwgServiceException("ConvertProxyResponseToDTO : a error is raised when converting PwgTagProxyResponse.", ex);
     396            }
     397
     398            return returnValue;
     399        }
     400
     401        /// <summary>
     402        /// private: convert response to dto object
     403        /// </summary>
     404        /// <param name="response"></param>
     405        /// <param name="session"></param>
     406        internal static PwgPostCommentSecurityInfo ConvertProxyResponseToDTO(PwgPostCommentSecurityInfo response)
     407        {
     408            PwgPostCommentSecurityInfo returnValue = new PwgPostCommentSecurityInfo();
     409
     410            returnValue.Author = response.Author;
     411            returnValue.AllowPostKey = response.AllowPostKey;
     412
     413            return returnValue;
     414        }
     415
     416        /// <summary>
     417        /// private: convert response to dto object
     418        /// </summary>
     419        /// <param name="response"></param>
     420        /// <param name="session"></param>
     421        internal static PwgCommentPage ConvertProxyResponseToDTO(PwgCommentPageProxyResponse response)
     422        {
     423            PwgCommentPage returnValue = new PwgCommentPage();
     424   
     425            returnValue.Page = response.Page;
     426            returnValue.PerPage = response.PerPage;
     427            returnValue.CountOf = response.CountOf;
     428            returnValue.TotalCommentNumber = response.TotalCommentNumber;
     429
     430            //PwgCommentPage inherit List<PwgComment>
     431            if (response.Comments != null)
     432            {
     433                foreach (PwgCommentProxyResponse respComment in response.Comments)
     434                {
     435                    PwgComment pwgCom = ConvertProxyResponseToDTO(respComment);
     436                    if (pwgCom != null)
     437                    {
     438                        returnValue.Add(pwgCom);
     439                    }
     440                }
     441            }
     442
     443            return returnValue;
     444        }
     445
     446        /// <summary>
     447        /// private: convert response to dto object
     448        /// </summary>
     449        /// <param name="response"></param>
     450        /// <param name="session"></param>
     451        internal static PwgComment ConvertProxyResponseToDTO(PwgCommentProxyResponse response)
     452        {
     453            PwgComment returnValue = new PwgComment();
     454
     455            returnValue.Id          = response.Id;         
     456            returnValue.CommentDate = response.CommentDate;
     457            returnValue.Author      = response.Author;
     458            returnValue.Content     = response.Content;     
     459
     460            return returnValue;
    236461        }
    237462
  • extensions/PiwigoLib/TestPiwigoLib/Form1.cs

    r11872 r11890  
    4646                //List<PwgTag> lstTag = PwgServiceProvider.Instance.PwgTagsService.GetAdminListOfTag();
    4747
    48                 //Int32 Page = 0;
    49                 //Int32 PerPage = 0;
    50                 //Int32 Count = 0;
     48                Int32 Page = 0;
     49                Int32 PerPage = 0;
     50                Int32 Count = 0;
    5151
    52                 //List<PwgImage> lstImgTag = PwgServiceProvider.Instance.PwgTagsService.GetListOfImagesFormTags(new List<Int32>() { 1, 7 },
    53                 //    null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
    54                 //    ref Page, ref PerPage, ref Count);
     52                List<PwgImage> lstImgTag = PwgServiceProvider.Instance.PwgTagsService.GetListOfImagesFormTags(new List<Int32>() { 1, 7 },
     53                    null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
     54                    ref Page, ref PerPage, ref Count);
    5555
    56                 //List<PwgImage> lstImgCat = PwgServiceProvider.Instance.PwgCategoriesService.GetListOfImagesFormCategory(1,
    57                 //    null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
    58                 //    ref Page, ref PerPage, ref Count);
     56                List<PwgImage> lstImgCat = PwgServiceProvider.Instance.PwgCategoriesService.GetListOfImagesFormCategory(1,
     57                    null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
     58                    ref Page, ref PerPage, ref Count);
    5959
    6060                //Console.WriteLine("lstImg : Page " + Page.ToString() + " PerPage " + PerPage);
     
    7474                //lstCat = PwgServiceProvider.Instance.PwgCategoriesService.GetAdminListOfCategory();
    7575
    76                 //FileInfo fi = new FileInfo("C:\\Users\\bayral\\Downloads\\49133_1636405570_2648232_n.jpg");
    77                 //PwgImageAdded imgAdd = PwgServiceProvider.Instance.PwgImagesService.addImageByMultiPartForm(fi, null, 1, "benoit", "byarl", "test upload", 0, new List<PwgTag>() { new PwgTag() { Name = "Benoit" }, new PwgTag() { Name = "Noé" } });
     76                FileInfo fiBig = new FileInfo("C:\\Users\\bayral\\Downloads\\49133_1636405570_2648232_n.jpg");
     77                FileInfo fiThumb = new FileInfo(MakeThumb(fiBig,"C:\\Users\\bayral\\Downloads\\49133_1636405570_2648232_n_thum.jpg",64));
     78                FileInfo fiLow = new FileInfo(MakeThumb(fiBig,"C:\\Users\\bayral\\Downloads\\49133_1636405570_2648232_n_low.jpg",256));
    7879
    79                 rc = PwgServiceProvider.Instance.PwgImagesService.DeleteImage(319, sess.SecurityToken);
     80                //PwgImageAdded imgAdd = PwgServiceProvider.Instance.PwgImagesService.addImageByMultiPartForm(fiBig, null, 1, "benoit", "byarl", "test upload", 0, new List<PwgTag>() { new PwgTag() { Name = "Benoit" }, new PwgTag() { Name = "Noé" } });
     81                rc = PwgServiceProvider.Instance.PwgImagesService.addImage(fiBig, fiLow, fiThumb, "Benoit", "bayral", DateTime.Now, "demo", null, null, PwgConfidentLevelEnum.All);
     82                //rc = PwgServiceProvider.Instance.PwgImagesService.DeleteImage(319, sess.SecurityToken);
    8083
    81                 PwgImageInfo info = PwgServiceProvider.Instance.PwgImagesService.getImageInfo(319, null, null);
    82 
     84                //PwgImageInfo info = PwgServiceProvider.Instance.PwgImagesService.getImageInfo(imgAdd.Id, null, null);
     85               
    8386                //PwgImageRate imgRate = PwgServiceProvider.Instance.PwgImagesService.RateImage(1, 5);
    8487
     
    9396        }
    9497
     98        private string MakeThumb(FileInfo fi, String ext, int size)       
     99        {
     100        // create an image object, using the filename we just retrieved
     101        System.Drawing.Image image = System.Drawing.Image.FromFile(fi.FullName);
     102
     103        // create the actual thumbnail image
     104        System.Drawing.Image thumbnailImage = image.GetThumbnailImage(size, size, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
     105
     106        // make a memory stream to work with the image bytes
     107        FileStream imageStream = new FileStream(ext, FileMode.OpenOrCreate);
     108
     109        // put the image into the memory stream
     110        thumbnailImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg);
     111
     112        imageStream.Close();
     113        return ext;
     114        }
     115
     116        /// <summary>
     117        /// Required, but not used
     118        /// </summary>
     119        /// <returns>true</returns>
     120        public bool ThumbnailCallback()
     121        {
     122            return true;
     123        }
     124
     125
    95126        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    96127        {
Note: See TracChangeset for help on using the changeset viewer.