Ich habe diesen Code bekam ein Bild in Excel einfügen:Warum wird ein Bild beim Einfügen in Excel größer angezeigt als seine tatsächliche Größe, und wie kann es in seiner natürlichen Größe angezeigt werden?
. . .
string unitImageLoc = GetUnitImageLoc();
if (unitImageLoc != "image not found")
{
Image img = Image.FromFile(unitImageLoc);
int imgWidth = img.Width;
int imgHeight = img.Height;
_xlSheet.Shapes.AddPicture(unitImageLoc,
Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoCTrue, 4, 4, imgWidth, imgHeight);
}
private string GetUnitImageLoc()
{
string unitUpper = _unit.ToUpper();
string candidateFile = string.Format("C:\\RoboReporter\\{0}.png",
unitUpper);
if (File.Exists(candidateFile))
{
return candidateFile;
}
return "image not found";
}
Es funktioniert, aber druckt das Bild größer als seine tatsächliche Größe, wie oben hier (Excel gesehen, als Bildbetrachter auf das erscheint unten):
es ist nicht ein Problem mit einem bestimmten Bild: es geschieht mit irgend:
Also muss ich die Breite und Höhe um 70% oder etwas multiplizieren, um es gleich zu bekommen?
Versuchen Sie, '-1' für die Breite und die Höhe einzugeben, wie bereits erwähnt [hier] (https://msdn.microsoft.com/en-us/library/office/ff198302.aspx). – Quantic
Und was passiert, wenn Sie das Bild selbst kopieren und einfügen? Wie bereits erwähnt (http://superuser.com/questions/211020/prevent-outlook-2010-insert-picture-resizing-image), zeigt Excel Bilder basierend auf der physischen Größe an, sodass die DPI-Einstellung des Bilds skaliert wird es; es wird nicht einfach 1 Bildpixel auf 1 Bildschirmpixel abgebildet, das passiert nur, wenn die DPI-Bilder die gleiche wie die Windows-Einstellung sind. Möglicherweise müssen Sie das Bild in die Image-Klasse einlesen, die Eigenschaften Vertical und HorizontalResolution ändern, es dann erneut in der temporären Datei speichern und diese temporäre Datei der Tabelle hinzufügen. – Quantic
Sie können die dpi des Bildes sehr einfach einstellen! – TaW