c# .net design scaling solution - Revised
$250-750 USD
Paid on delivery
Budget for this project is $300 USD.
We need someone who can help us create a scaling solution for our design software.
Our design software allows users to create their own products via a web interface. All image manipulation is done on the server and we need our classes modified to allow a design to be assigned to a new design area, resized and repositioned if need be. The current class structure is:
Product
- View (This is typically the front or back of a shirt. Products may contain 1 or more)
- Design Areas (This could be full front, left chest, or any other defined location. Views will contain a list of 1 or more design areas)
- Design (Each design area will contain no more than 1 design. If no design was created for the design area, it will be blank.)
- Design Elements (Each design will contain a list of 1 or more design elements. All design elements are images regardless of type.)
The default canvas size is 500x500. This is our original canvas size as shown in the designer and is the default size that all product images are shown at.
Design Area
Each design area is a rectangle that has been defined within this space. In the example image attached, it is the red dotted outline that is 160x192 pixels in width and starts at point 166,97. The important members of this class are:
ViewWidth & ViewHeight: This represents the canvas width and height noted above. 500x500
TopLeftX & TopLeftY: This represents the start point of the design area. 160x192
OutlineWidth & OutlineHeight: This represents the width & height of the design area. 166.97
Design
The design is a container that holds a list of all the design elements. It also has a reference to the canvas size that it was created on (500x500) and the design area deminisions it was created on. The important members of this class are:
ViewWidth & ViewHeight: This represents the canvas width and height that the design was originally created on. 500x500
OutlineX & OutlineY: This represents the start point of the design area the design was originally created on. 160x192
OutlineWidth & OutlineHeight: This represents the width & height of the design area the design was originally created on. 166.97
Element
The elements are the individual images that make up a design. Each element also has a reference to the original canvas size that it was created on and the design area deminisions it was created on. The import members of this class are:
ViewWidth & ViewHeight: This represents the canvas width and height that the design was originally created on. 500x500
OutlineX & OutlineY: This represents the start point of the design area the design was originally created on. 160x192
OutlineWidth & OutlineHeight: This represents the width & height of the design area the design was originally created on. 166.97
The specific properties that need to be adjusted based on scale / positioning, are:
TopX and TopY - Represents the starting point (X,Y coordinate) of the element.
Width & Height - Represents the width and height of the element.
CenterX & CenterY - Represents the Center point of the element.
By default, the canvas, design area, and element properties are the original settings that were captured when the design was saved. What we want to accomplish is to be able to pass a new rectangle (design area) to the design class that will automatically scale and reposition the design elements to fit within that area. We should also be able to tell the design how top align itself with and Vertical Align and Horizontal Align parameters.
Horizonal Align: Left, Center, Right
Vertical Align: Top, Middle, Bottom
The design should be scaled proportionately to fit within the new rectangle and then positioned according to the alignment settings above.
Image [url removed, login to view] shows the original design and design_sample_2 shows the design after it has been scaled and repositioned for a new design area, centered horizontally and vertically.
Project ID: #1375718
About the project
Awarded to:
5 freelancers are bidding on average $358 for this job
Hi, I am a very Professional .Net Developer and I can help you in building this job, Please see the private message, Thanks