Jag har tre gif bilder i en Resourcesfil, men blir inte klok på hur jag skall få fram dom när de skall användas. Kolla in följande metod på MSDN: GetWebResourceUrl() Ted, tack för att du tar dig tid. Du kan ju testa att göra en så kallad HTTP handler (.ashx) som hämtar en resurs (en bild) och skriver ut den till HTTP-strömmen. Du kan då sätta denna .ashx-fil som URL för din Image (tillsammans med några parametrar som anger vilken bild som ska returneras). Ted. Om du har refererat till System.Web.UI.WebControls-namespacet i din handler måste du referera till till Image-typen med hela namnet. Nu tycker du säkert att jag är jobbig... Du måste vara lika noggrann när du deklarerar ditt gifJa-objekt: Slarv av mig. Error: The name 'ImageFormat' does not exist in the current context Du är en pärla Ted men.. En System.Drawing.Image är ett bildobjekt som kan användas för att skriva ut en bilds bitar direkt till HTTP-strömmen. Aj nu blev jag konfus... Nu har jag inte kört så mycket bilder i resources på webprojekt, men borde du inte kunna slänga in ett bildobjekt i din kontroll och använda designern till att peka på bilden i din resource-fil? Magnus, jag börjar att få slut på ideér vill du med några rader kod visa hur du menar så vore jag tacksam. Jag har fått göra det näst bästa av det hela Det bästa alternativet är nog att läsa på om Resources och även Localization för ASP.NET på MSDN eller annat lämpligt ställe, frågan blir lite för yvig för att diskutera här... Ted, jag förstår att du är besviken. Jag har ängnat flera dagar nu med att försöka komma tillrätta med En viktig sak med WebResourceUrl är att TYPE-argumentet ska anges till någon typ som ENDAST finns definierad i den assembly där resursen finns. Jag hade detta problem själv (då med separerade assemblies), och löste det genom att använda typeof(minKlassIResursensAssembly) som typargument.Bilder i Resourcesfil
Sv: Bilder i Resourcesfil
Den kan du använda för att få en URL till en .AXD-handler som i själva verket pekar ut en bild. Den ger dig alltså en URL som:
http://dinsite/webresource.axd?parametrar (denna pekar ut din bild i din Resource-fil)
Sen kan du använda följande pseudokod:
<asp:Image ID="Min bild" ImageUrl="<% GetWebResourceUrl() %>" />
Sv:Bilder i Resourcesfil
Jag förklarade nog väldigt dåligt. Jag håller på att bygga en webbcontroll, där jag i Resource1.resx har
lagt in tre bilder _4.gif,_5gif och _6.gif
Jag försöker att ta fram de så här:
<code>
string sgifJa = Page.ClientScript.GetWebResourceUrl(this.GetType(), "Votes._5.gif");
//lite kod
syes = contVotes(Yes, Yes +No + DontKnow).ToString();
//mera kod
output.Write("<Img Src=\" + sgifJa + \" height=10 width =" + syes + ">");
</code>
..och jag misslyckas totalt. Hur bör jag göra?
[REDIGERA]
Jag gjorde till och med en "idiotgrej" men det fungerar inte
<code>
output.Write("<asp:Image ID=\"Ja\" ImageUrl=\" C:\\Inetpub\\wwwroot\\aspnetstepbystep\UseDataCaching\\Controll_Vote\\Controll_Votes\\_5.gif \" />");
</code>
Om jag sedan tittar på viewsource så ser det riktigt ut, men ingen bild :-(Sv: Bilder i Resourcesfil
Om du har en .resx-fil kan du nog casta en resurspost till ett Image-objekt genom att helt enkelt referera till resursnamnet (resursen blir ju typed i och med att .resx-filen kompileras). Kolla MSDN för hur du kan använda .ashx-handlers för att hämta data och skriva det till HTTP-strömmen!
Du borde kunna använda följande pseudokod:
<code>
using System.Drawing;
Image minBild = (Image)Resources.NamnetPåDinResursFil.ResursNamnetFörBilden;
</code>Sv:Bilder i Resourcesfil
Jag gör ett försök så gott jag kan med dina förslag, men får en del error.
<code>
using System.Drawing;
//ger följande error
Error 1 'Image' is an ambiguous reference between 'System.Web.UI.WebControls.Image'
and 'System.Drawing.Image' C:\Inetpub\wwwroot\aspnetstepbystep\UseDataCaching\Controll_Vote\Controll_Votes\Votes.cs
122 14 Controll_Votes
//om jag markerar bort den raden så kommer nästa error
Error 1 Cannot convert type 'System.Drawing.Bitmap' to 'System.Web.UI.WebControls.Image'
C:\Inetpub\wwwroot\aspnetstepbystep\UseDataCaching\Controll_Vote\Controll_Votes\Votes.cs
122 28 Controll_Votes
//det som är possetivt är att nu hittar den bilderna
Image gifJa = (Image)Resource1._5;
Image gifNej = (Image)Resource1._6;
Image gifKanske = (Image)Resource1._4;
</code>
Hur kan jag undvika dessa error?Sv: Bilder i Resourcesfil
Så, en cast blir då:
<code>
(System.Drawing.Image)ObjektAttKonvertera;
</code>Sv:Bilder i Resourcesfil
<code>
Image gifJa = (System.Drawing.Image)Resource1._5;
//error
Error 1 Cannot implicitly convert type 'System.Drawing.Image'
to 'System.Web.UI.WebControls.Image'
C:\Inetpub\wwwroot\aspnetstepbystep\UseDataCaching\Controll_Vote\Controll_Votes\Votes.cs
106 30 Controll_Votes
</code>
Och fortfarande så kan jag inte lägga till using System.Drawing; då får jag ett error till.Sv: Bilder i Resourcesfil
<code>
System.Drawing.Image gifJa = (System.Drawing.Image)objektAttKonvertera;
</code>Sv:Bilder i Resourcesfil
Då är vi alltså här:
<code>
System.Drawing.Image gifJa = (System.Drawing.Image)Resource1._5;
//nu gäller det att fixa bredd och höjd. Enligt någon kod jag hittade..
System.Drawing.Image newgifJa = gifJa.GetThumbnailImage(Convert.ToInt32(Yes), Convert.ToInt32("10"), null, IntPtr.Zero);
//jag måste har breden dynamiskt eftersom detta är till en rösträknare.
//här får jag fel
newgifJa.Save(Server.MapPath("5.gif"), ImageFormat.gif);
//Error The name 'Server' does not exist in the current context
//Error The name 'ImageFormat' does not exist in the current context
//och enligt samma kod
sb.Append("<td>" + newgifJa.ImageUrl = "5.gif" + "</td>")
//jag bygger numera upp den via stringbuilder, jag chansar på att det blir bättre
</code>
Hur fixar jag de senaste erron???Sv: Bilder i Resourcesfil
Lösning: Använd hela namespacet, System.Drawing.....
Error: The name 'Server' does not exist in the current context
Lösning: Använd dig av...
<code>
HttpContext.Current.Server.MapPath("5.gif");
</code>Sv:Bilder i Resourcesfil
Enligt koden så skulle det bli
<code>
newgifJa.ImageUrl = "testimagefile_thumb.jpg";
//error Error 'System.Drawing.Image' does not contain a definition for 'ImageUrl'
</code>
Jag försöker alltså använda den så här:
<code>
sb.Append("<td>" + newgifJa.ImageUrl = "5.gif" + "</td>");
</code>
Är jag galet ute i alla fall???Sv: Bilder i Resourcesfil
Om du bara vill ha en System.Web.UI.WebControls.Image att rendera ska du använda URL:en du genererade tidigare (den som har en .axd-fil i sig) och sätta ImageUrl till den för System.Web.UI.WebControls.Image-kontrollen!Sv:Bilder i Resourcesfil
<code>
System.Drawing.Image gifJa = (System.Drawing.Image)Resource1._5;
System.Drawing.Image newgifJa = gifJa.GetThumbnailImage(Convert.ToInt32(Yes), Convert.ToInt32("10"), null, IntPtr.Zero);
gifJa.Dispose();
sb.Append("<td>" + newgifJa.ImageUrl = "5.gif" + "</td>");
File.Delete(HttpContext.Current.Server.MapPath("5.gif"));
</code>
Detta är ju vad som tillhör newgifJa, vad är det som skall ändras då???Sv: Bilder i Resourcesfil
Jag kan vara helt fel ute...Sv:Bilder i Resourcesfil
Sv: Bilder i Resourcesfil
<code>
sb.Append("<td><div style=\"background-color:Blue; width:" +
Convert.ToInt32(sdontKnow) + "px\" /div></td>");
</code>
Detta fungerar men blir inte lika snyggt som en bild.
Hur gör jag om jag vill ha en property för att välja färg???Sv:Bilder i Resourcesfil
Lycka till, Benni!
Påminner också om mitt första svar som går ut på att använda följande:
<code>
<asp:Image ID="Min bild" ImageUrl="<% GetWebResourceUrl() %>" />
</code>Sv: Bilder i Resourcesfil
detta problemet. Hur mycket jag har läst, försökt och stuvat om det vet jag inte men mycket är det.
Jag får det fortfarande inte att fungera.
<code>
//min Assemblyfil
[assembly: WebResource("Controll_Votes.Resources._4.gif", "image/gif")]
//min kod
sb.Append("<td><asp:Image ID=\"JaBild\" ImageUrl=\"<% GetWebResourceUrl(typeof
(img/gif),\"Controll_Votes.Resources._4.gif\")%>\"/></td>");
//Viewsource
<asp:Image ID="JaBild" ImageUrl="<% GetWebResourceUrl(typeof(img/gif),"_4.gif")%>"/>
</code>
Enligt alla de sidor som jag har hittat så borde det se ut så här, men det hjälper inte.
[REDIGERT]
Jag tycker nog att jag har fått till det ganska så bra ändå. Tack för all hjälp.Sv:Bilder i Resourcesfil
Än en gång, lycka till!